موضوع این مقاله اتصال دستگاه های خارجی به مک از طریق رابط های SAS، Fiber Channel (FC)، eSATA است. بیایید بلافاصله بگوییم که برای حل مشکل دسترسی به چنین دستگاه هایی، راهی برای یک فرد سالم وجود دارد: یک رایانه شخصی ارزان بسازید، یک کارت کنترل HBA SAS یا FC (به عنوان مثال، یک آداپتور ساده LSI) وصل کنید، دستگاه های خود را به این کنترلر، هر لینوکس را روی رایانه شخصی نصب کنید و از طریق شبکه از مک کار کنید. اما این پیش پا افتاده و غیر جالب است. ما مسیر هاردکور را طی خواهیم کرد و دستگاه های خود را به هم وصل خواهیم کرد مستقیما به مک.
آنچه برای این مورد نیاز داریم:
– مبلغ مناسبی برای خرید تجهیزات جدید یا موفق باشید در حراجی در eBay (جایی که با کمی تلاش می توانید تجهیزات مورد نیاز نسل های قبلی را 10 برابر ارزان تر از قیمت لیست خریداری کنید).
- این مقاله.
برای کار با نوار مغناطیسی (اکنون تقریباً به صورت جهانی در قالب LTO ارائه شده است)، باید یک درایو نوار LTO (استریمر) یا کتابخانه نوار داشته باشید. این یک دستگاه نسبتاً گران برای خرید اولیه (از صدها هزار روبل) است، اما هنگام خرید کارکرده ارزش پول معقولی دارد. از آنجایی که نسلهای LTO تقریباً هر دو سال یکبار تغییر میکنند، و سازگاری به دو نسل محدود میشود، بازار ثانویه کاملاً با دستگاههای کارآمد چهار سال یا بیشتر اشباع شده است، یعنی. نسل قبل و بعد از آن اگر دستگاه جدیدی را برای مقاصد تجاری خریداری می کنید، خودتان متوجه می شوید که چرا به آن نیاز دارید. اگر می خواهید برای خانه و خانواده خود خرید کنید، می توانید این گزینه را به عنوان راهی برای آرشیو اطلاعات در نظر بگیرید (چون خود رسانه ها به ازای هر 1 گیگابایت بسیار ارزان هستند).
با شروع از نسل LTO-5 (و تا حدی LTO-4)، دستگاه هایی برای کار با نوار مغناطیسی از طریق یک رابط SAS یا FC به رایانه متصل می شوند (معمولاً دو نسخه از هر دستگاه وجود دارد)
از سوی دیگر، اپل با مهربانی به ما یک رابط USB-C در مک خود (که با استفاده از پروتکلهای USB، Thunderbolt 3 یا DisplayPort کار میکند)، گاهی اوقات یک رابط اترنت، و همچنین Thunderbolt 3 - Thunderbolt 2 و Thunderbolt - FireWire 800 در اختیار ما قرار میدهد. آداپتورها
بن بست؟ نه واقعا. خوشبختانه، Thunderbolt میتواند در حالت PCIe کار کند و به کارتهای PCIe اجازه میدهد به همان روشی که به طور مستقیم در داخل کیس رایانه نصب شدهاند، متصل شوند. به همین دلیل، هرگونه گسترش پیکربندی سخت افزار مک، به شرط وجود آداپتور و درایور مناسب امکان پذیر است.
از نظر مفهومی، ساده ترین راه برای حل مشکل، یک جعبه خارجی برای آداپتورهای PCIe با رابط Thunderbolt (سیستم گسترش کارت PCIe) است که می توانید یک آداپتور گذرگاه SAS یا FC Host (HBA) را در آن نصب کنید. به عنوان مثال چنین جعبه هایی توسط این شرکت تولید می شود و برخی دیگر. یک نکته اینجا وجود دارد: هر کنترلکنندهای برای ما کار نمیکند، فقط آنهایی که درایور دارند برای macOSتعداد این نوع تابلوها بسیار کم است و ارزانترین و محبوبترین آنها (مثلاً همین LSI) جزو آنها نیستند. خوشبختانه، سونت زحمت گردآوری آن را کشید. کارت های PCIe با سیستم عامل های مختلف از طریق رابط Thunderbolt.
راه حل دیگر خرید مبدل رابط Thunderbolt - SAS یا Thunderbolt - FC آماده است که در واقع مونتاژ آماده جعبه و کنترلر است. معروف ترین شرکت در این زمینه ، اما محصولاتی از شرکت های دیگر نیز وجود دارد.
توجه داشته باشید که همه کنترلرهای SAS و FC برای مطابقت با استاندارد LTO گواهینامه ندارند، زیرا این خود هزینه دارد. برخی از تولیدکنندگان مستقیماً می نویسند که کنترلرهای آنها برای کار با نوار درایو طراحی نشده اند.
برای تکمیل تصویر، توجه می کنیم که mLogic تولید می کند که یک درایو IBM LTO-8 در یک کیس خارجی است که بلافاصله مبدل SAS به Thunderbolt 3 در آن ادغام شده است. من شک دارم که این دستگاه حتی به طور قانونی به روسیه وارد شود (درایوهای LTO دارای ویژگی های رمزنگاری هستند و سازندگانی مانند IBM و HP به همین دلیل مجوز واردات FSB را برای هر مدل دریافت می کنند).
در مرحله بعد، به عنوان مثال، مجموعه خاصی از تجهیزات را در نظر خواهیم گرفت، که صاحب آن نویسنده در نتیجه چندین خرید موفق شد، اما اصل کلی باید برای همه گزینه ها حفظ شود.
بنابراین ما تجهیزات زیر را برای کار با نوار داریم:
– کامپیوتر اپل مک مینی ۲۰۱۸ با macOS ۱۰.۱۵ کاتالینا، که دارای پورتهای USB-C با پشتیبانی از تاندربولت ۳ است؛
– آداپتور Apple Thunderbolt 3 / Thunderbolt 2;
– کابل Apple Thunderbolt 2;
– مبدل رابط ATTO ThunderLink SH 1068 (2*Thunderbolt / 2*SAS-2)؛
– کابل SAS SFF-8088 – SFF-8088;
– درایو نوار LTO-5 IBM TS2350؛
– کارتریج LTO-5، کارتریج تمیز کردن.
اکنون، همانطور که می گویند، با این همه چیز، ما سعی خواهیم کرد که از زمین خارج شویم.
ما آخرین نسخه درایور ThunderLink SH 1068 را از وب سایت ATTO دانلود می کنیم (ظاهراً برای راحتی ما با درایور SH 2068 ترکیب شده است و در قسمت 2068 قرار دارد که فقط در داخل آرشیو با درایور نوشته شده است) و ابزار پیکربندی ATTO.

البته درایور نیاز به نصب دارد. قبل از چنین اقداماتی، نویسنده توصیه می کند همیشه با دستور یک عکس فوری از سیستم فایل APFS دیسک بوت بگیرید.
tmutil localsnapshotیا یک نسخه پشتیبان از دیسک بوت، اگر HFS+ داشته باشد. شما هرگز نمی دانید. پس از آن به راحتی می توان از عکس فوری عقب نشینی کرد.
در مرحله بعد، ذهن بی تجربه اما با دقت لازم بدون شک تمایل دارد دستورالعمل های نصب درایور ATTO را به دقت مطالعه کند و آنها را دنبال کند. در نتیجه - تادام! - ما یک سیستم عامل دریافت می کنیم که در مرحله بارگذاری آویزان است. در اینجا ممکن است به یک عکس فوری نیاز داشته باشیم که بتوانیم با فراخوانی Time Machine از پارتیشن بازیابی بازیابی کنیم، یا از همان پارتیشن بازیابی بتوانیم به صورت دستی kext بیمار را از فهرست پسوندهای هسته پاک کنیم (نویسنده معمولاً انجام این کار را توصیه نمی کند).
چرا این اتفاق میافتد؟ چون اپل در آخرین نسخهها به ما توجه کرده است. macOS شما نمیتوانید همینطوری کد خارجی را به فرآیند بوت تزریق کنید. برنامهنویسان مهربان اپل این رفتار مخرب را مسدود کردهاند. به طور دقیقتر، آنها آن را تا نیمه مسدود کردهاند: وقتی driver wait تزریق میشود، اما خود درایور تزریق نمیشود، همه چیز فقط هنگ میکند.
یک ذهن پیشرفته قبل از نصب درایور چه کاری باید انجام دهد؟ ابتدا دستور را بدهید:
csrutil statusاگر در پاسخ به آن دریافت کنیم:
وضعیت حفاظت از یکپارچگی سیستم: فعال است.
پس این بدان معنی است که برنامه نویسان خوب اپل به ما اهمیت می دهند، بنابراین تا زمانی که محافظت فوق العاده آنها را غیرفعال نکنیم، هیچ چیز برای ما کارساز نخواهد بود. برای انجام این کار، پارتیشن بازیابی (⌘R) را راه اندازی مجدد کنید، ترمینال را صدا بزنید و دستور را صادر کنید:
csrutil disableپس از این، ما در سیستم کار راه اندازی مجدد می کنیم و تنها پس از آن درایور و در عین حال ابزار پیکربندی ATTO را نصب می کنیم (در اصل، ابزار پیکربندی فقط برای عیب یابی مورد نیاز است و در حین کار عادی مورد نیاز نیست). در طول مسیر، وقتی از شما خواسته شد، مجوز ATTO را در تنظیمات سیستم تأیید می کنیم. پس از نصب، می توانید دوباره در پارتیشن ریکاوری راه اندازی مجدد کنید و دستور را بدهید
csrutil enableاپل دوباره از ما مراقبت می کند.
اکنون ما یک رابط پشتیبانی از درایور برای دستگاههای SAS خارجی (یا FC، در صورت استفاده از مبدل FC) داریم. اما چگونه می توان با نوار در سطح منطقی کار کرد؟
همانطور که ذهن کم تجربه اما فرهیخته می داند، هر سیستم سازگار با یونیکس از درایوهای نوار در سطح هسته و ابزارهای اساسی سیستم پشتیبانی می کند، که در درجه اول شامل mt (مدیریت نوار) و tar (بایگانی کننده ای است که از کار با آرشیو روی نوار پشتیبانی می کند). با این حال، یک ذهن پیچیده در این مورد چه می تواند بگوید؟ هر سیستم سازگار با یونیکس، بعلاوه macOS. اپل با حذف پشتیبانی از دستگاه های نواری از کد خود، از ما مراقبت کرد.
اما آیا واقعاً غیرممکن است که این کد را با انتقال ابزارهای استاندارد متنباز یونیکس به ... بازگردانیم؟ macOSخبر خوب این است که شرکت Tolis (که لینک آن را نمیگذارم) قبلاً این کار را در محصول Tolis Tape Tools خود انجام داده است. خبر بد این است که این شرکت برای استفاده از کار خود ۳۹۹ دلار هزینه دریافت میکند. تخمینها در این مورد ممکن است متفاوت باشد، اما نویسنده شخصاً حاضر نیست برای کدی که عمدتاً توسط افراد دیگر نوشته شده و از دهه ۱۹۷۰ مورد استفاده آزاد بوده است، ۴۰۰ دلار به کسی بپردازد، بنابراین نویسنده این موضوع را پایان یافته میداند. (ضمناً، یک پروژه متنباز رها شده و مبهم در حال اجرا در GitHub وجود دارد.) در همین موضوع).
خوشبختانه، IBM وجود دارد، شرکتی که اشتهای تجاریاش در مقیاسی کاملاً متفاوت است و بنابراین خود را در مسائل بیاهمیت نشان نمیدهد. به طور خاص، این شرکت سیستم فایل نواری LTFS متنباز را توسعه داده است که از جمله موارد دیگر، برای موارد زیر توزیع میشود: macOS.
نکته ای که در اینجا وجود دارد این است که سازندگان مختلف دستگاه های نوار، نسخه های LTFS خود را برای پشتیبانی از دستگاه های خود منتشر می کنند. از آنجایی که نویسنده از یک درایو نوار IBM استفاده می کند، LTFS را از IBM نصب کرد. درایوهای شخص ثالث ممکن است به پورت های LTFS خود نیاز داشته باشند. و یک پیاده سازی جهانی openLTFS در Github و Homebrew وجود دارد.
برای ما مهم است که LTFS از عملکرد پارتیشن بندی رسانه استفاده کند، بنابراین می تواند با دستگاه ها و کارتریج ها از نسل LTO-5 کار کند.
بنابراین، در مورد ما، محصول IBM Spectrum Archive Single Drive Edition را از وبسایت IBM دانلود میکنیم. macOSکه شامل پیادهسازی LTFS میشود. ما محصول را بدون هیچ پیچیدگی با استفاده از نصاب مخصوص آن نصب میکنیم. در طول مسیر، بسته FUSE را نیز نصب میکند، اگرچه شما باید مجوز یک برنامهنویس هوشمند به نام آناتول پوموزوف را در تنظیمات سیستم تأیید کنید، که در این مورد، کل سیستم IBM به او وابسته است. احترام و تحسین برای این مرد.
توصیه می شود بلافاصله خط را در فایل /Library/Frameworks/LTFS.framework/Versions/Current/etc/ltfs.conf.local بنویسید:
گزینه single-drive sync_type=time@1
که مشخص می کند نوار به صورت پیش فرض نصب شده و بافر ضبط پس از 1 دقیقه عدم فعالیت مجدد تنظیم می شود (پیش فرض 5 دقیقه است).

در نهایت، همه چیز برای اتصال آماده است. ما زنجیره را به هم وصل می کنیم: Mac - آداپتور T3/T2 - کابل Thunderbolt - مبدل ATTO - کابل SAS - درایو نوار (انتخاب چندین پورت در مک، مبدل و درایو مهم نیست). برق مبدل را روشن کنید. برق درایو نوار را روشن کنید. ما منتظر می مانیم تا درایو مطابق با نشانه آن مقداردهی اولیه را کامل کند.
دستور می دهیم:
ltfs -o device_listهورا! ما (به روش معمول تشخیصی IBM):
307 LTFS14000I LTFS شروع، LTFS نسخه 2.4.2.0 (10418)، لاگ سطح 2.
307 LTFS14058I LTFS فرمت مشخصات نسخه 2.4.0.
307 LTFS14104I توسط "ltfs -o device_list" راه اندازی شد.
307 LTFS14105I این باینری برای Mac OS X ساخته شده است.
نسخه 307 LTFS14106I GCC با 4.2.1 سازگار با Apple Clang 4.1 ((برچسب ها/Apple/clang-421.11.66)) است.
307 LTFS17087I نسخه هسته: Darwin Kernel نسخه 19.4.0: چهارشنبه 4 مارس 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
پلاگین 307 LTFS17085I: در حال بارگیری نوار پشتی «iokit».
لیست دستگاه نوار:.
نام دستگاه = 0، شناسه فروشنده = IBM، شناسه محصول = ULT3580-TD5، شماره سریال = **********، نام محصول = [ULT3580-TD5].
نوار کاست را وارد کنید، صبر کنید تا بارگیری شود و فرمت شود:
mkltfs -d 0 -nTest -r "size=10M/name=.DS_Store"در اینجا پارامتر -d شماره درایو را مشخص می کند (اگر تنها یک باشد همیشه صفر است، اما در این دستور نمی توان آن را حذف کرد)، -n نام نوار است (می توانید آن را حذف کنید)، و پارامتر -r نیاز به قرار دادن محتویات دارد. از فایلهای .DS_Store که حجم آنها از 10 مگابایت بیشتر نباشد، به جای بخش داده، در بخش فهرست (یعنی در نظر گرفته شده برای فهرستها) نوار نوار.
زندگی مرموز در درایو نوار آغاز شد. چند دقیقه صبر می کنیم و پاسخ زیر را دریافت می کنیم:
LTFS15000I شروع mkltfs، LTFS نسخه 2.4.2.0 (10418)، log level 2.
LTFS15041I توسط "mkltfs -d 0 -nTest -r size=10M/name=.DS_Store" راه اندازی شد.
LTFS15042I این باینری برای Mac OS X ساخته شده است.
نسخه LTFS15043I GCC با 4.2.1 سازگار با Apple Clang 4.1 ((برچسب ها/Apple/clang-421.11.66)) است.
نسخه هسته LTFS17087I: Darwin Kernel نسخه 19.4.0: چهارشنبه 4 مارس 22:28:40 PST 2020. root:xnu-6153.101.6~15/RELEASE_X86_64.
LTFS15003I قالببندی دستگاه '0'.
حجم بلوک LTFS15004I LTFS: 524288.
سیاست قرار دادن پارتیشن فهرست LTFS15005I: size=10M/name=.DS_Store.LTFS11337I به روز رسانی index-dirty flag (1) - NO_BARCODE (0x0x1021081e0).
پلاگین LTFS17085I: در حال بارگیری نوار پشتی "iokit".
LTFS30810I باز کردن دستگاه از طریق درایور iokit (0).
شناسه فروشنده LTFS30814I IBM است.
شناسه محصول LTFS30815I 'ULT3580-TD5' است.
ویرایش سیستم عامل LTFS30816I H976 است.
سریال LTFS30817I Drive ********** می باشد.
LTFS17160I حداکثر اندازه بلوک دستگاه 1048576 است.
کارتریج بارگیری LTFS11330I.
حفاظت از بلوک منطقی LTFS30854I غیرفعال است.
LTFS11332I بارگیری با موفقیت انجام شد.
LTFS17157I تغییر تنظیمات درایو به حالت Writ-Anywhere.
LTFS15049I در حال بررسی محیط (mount).
حفاظت از بلوک منطقی LTFS30854I غیرفعال است.
LTFS15010I ایجاد پارتیشن داده b در پارتیشن SCSI 1.
LTFS15011I ایجاد پارتیشن شاخص a در پارتیشن SCSI 0.
LTFS17165I تنظیم مجدد نسبت ظرفیت رسانه.
LTFS11097I پارتیشن بندی رسانه.
LTFS11100I نوشتن برچسب در پارتیشن b.
LTFS11278I نوشتن فهرست در پارتیشن b.
LTFS30808I READ_ATTR (0x8c) -20501 را برمی گرداند.
LTFS30865I READ_ATTR فیلد نامعتبر را در CDB (-20501) 0 برمی گرداند.
LTFS30836I نمی توانم ویژگی را بخوانم (-20501).
LTFS11336I ویژگی وجود ندارد. خطای مورد انتظار را نادیده بگیرید.
LTFS17235I فهرست نوشتن NO_BARCODE به b (دلیل: فرمت، 0 فایل) **********.
LTFS17236I فهرست NO_BARCODE (b، **********) را نوشت.
LTFS11337I به روز رسانی index-dirty flag (0) - NO_BARCODE (0x0x1021081e0).
LTFS11100I نوشتن برچسب در پارتیشن a.
LTFS11278I نوشتن فهرست در پارتیشن a.
LTFS30808I READ_ATTR (0x8c) -20501 را برمی گرداند.
LTFS30865I READ_ATTR فیلد نامعتبر را در CDB (-20501) 0 برمی گرداند.
LTFS30836I نمی توانم ویژگی را بخوانم (-20501).
LTFS11336I ویژگی وجود ندارد. خطای مورد انتظار را نادیده بگیرید.
LTFS17235I نوشتن فهرست NO_BARCODE به یک (دلیل: فرمت، 0 فایل) 9068025555.
LTFS17236I فهرست NO_BARCODE (a، **********) را نوشت.
LTFS15013I Volume UUID is: 3802a70d-bd9f-47a6-a999-eb74ffa67fc1.ظرفیت حجم LTFS15019I 1425 گیگابایت است.
حفاظت از بلوک منطقی LTFS30854I غیرفعال است.
LTFS15024I Medium با موفقیت فرمت شد.
نوار فرمت شده را نصب کنید:
sudo mkdir /Volumes/LTFS
sudo chmod 777 /Volumes/LTFS/
sudo ltfs /Volumes/LTFSما چند دقیقه دیگر از عملکرد و عیب یابی درایو دریافت می کنیم:
307 LTFS14000I LTFS شروع، LTFS نسخه 2.4.2.0 (10418)، لاگ سطح 2.
307 LTFS14058I LTFS فرمت مشخصات نسخه 2.4.0.
307 LTFS14104I توسط "ltfs /Volumes/LTFS/" راه اندازی شد.
307 LTFS14105I این باینری برای Mac OS X ساخته شده است.
نسخه 307 LTFS14106I GCC با 4.2.1 سازگار با Apple Clang 4.1 ((برچسب ها/Apple/clang-421.11.66)) است.
307 LTFS17087I نسخه هسته: Darwin Kernel نسخه 19.4.0: چهارشنبه 4 مارس 22:28:40 PST 2020; root:xnu-6153.101.6~15/RELEASE_X86_64.
307 LTFS14063I نوع همگام سازی "زمان" است، زمان همگام سازی 60 ثانیه است.
پلاگین 307 LTFS17085I: در حال بارگیری نوار پشتی «iokit».
پلاگین 307 LTFS17085I: در حال بارگیری باطن isched "یکپارچه".
307 LTFS14095I برای جلوگیری از پرتاب کارتریج، حالت نوشتن دستگاه نوار را تنظیم کنید.
307 LTFS30810I باز کردن دستگاه از طریق درایور iokit (0).
شناسه فروشنده 307 LTFS30814I IBM است.
شناسه محصول 307 LTFS30815I 'ULT3580-TD5' است.
ویرایش سیستم عامل 307 LTFS30816I H976 است.
سریال 307 LTFS30817I Drive ********** می باشد.
307 LTFS17160I حداکثر اندازه بلوک دستگاه 1048576 است.
کارتریج بارگیری 307 LTFS11330I.
307 LTFS30854I حفاظت از بلوک منطقی غیرفعال است.
307 LTFS11332I بارگیری با موفقیت انجام شد.
307 LTFS17157I تغییر تنظیمات درایو به حالت Writ-Anywhere.
307 LTFS11005I نصب صدا.
307 LTFS30854I حفاظت از بلوک منطقی غیرفعال است.
307 LTFS17227I ویژگی نوار: فروشنده = IBM.
307 LTFS17227I ویژگی نوار: نام برنامه = LTFS.
307 LTFS17227I ویژگی نوار: نسخه برنامه = 2.4.2.0.
307 LTFS17227I ویژگی نوار: برچسب متوسط =.
307 LTFS17228I ویژگی نوار: شناسه محلیسازی متن = 0x81.
307 LTFS17227I ویژگی نوار: بارکد =.
307 LTFS17227I ویژگی نوار: فرمت برنامه نسخه = 2.4.0.
307 LTFS17228I ویژگی نوار: وضعیت قفل صدا = 0x00.
307 LTFS17227I ویژگی نوار: نام استخر رسانه =.
307 LTFS14111I راه اندازی اولیه با موفقیت انجام شد.
307 LTFS14112I برای بررسی نتیجه تنظیمات نهایی، دستور 'mount' را فراخوانی کنید.
307 LTFS14113I در صورت موفقیت، نقطه اتصال مشخص شده فهرست شده است.
و اینجاست، روبان ما روی دسکتاپ، به نام Test(ltfs)! نوار بدون نام OSXFUSE Volume 0 (ltfs) نامیده می شود.
حالا می توانید با آن کار کنید.

به طور کلی، باید در نظر داشته باشید که توصیه می شود از مشاهده محتویات دایرکتوری های نوار در پنجره های یاب زیاده روی نکنید، زیرا این یک عملیات فوق العاده گران برای LTFS است، اما بهتر است با دستورات ترمینال کار کنید یا به سادگی تنظیم مجدد شود. دایرکتوری پشتیبان به صورت انبوه در نوار، همانطور که در پنجره بالا نشان داده شده است.
به هر حال، یک ابزار ویژه نوشته شده IBM ltfs_copy و کلون های آن وجود دارد که برای کپی کارآمدتر بین نوار و دیسک طراحی شده است، اما تا کنون نویسنده نتوانسته است آنها را با جستجوی سطحی در حوزه عمومی پیدا کند.
با دستور زیر می توانید نوار را جدا کنید:
umount /Volumes/LTFSیا فقط آن را در سطل زباله بیندازید.
در واقع، برخی پوستههای گرافیکی در طبیعت وجود دارند macOS برای آسانتر کردن این اقدامات، اما پس از چنین انحرافاتی، آیا باید از تایپ چند خط در ترمینال بترسیم؟
به عنوان یک اثر جانبی، ما این فرصت را داریم که درایوهای خارجی eSATA را از طریق کابل SAS/4*eSATA متصل کنیم.

منبع: www.habr.com
