Принципи організації даних у сховищах Apple Core Storage. Можливі труднощі при відновленні файлів
Довгий час компанія Apple майже не приділяла уваги гнучкості власних сховищ, особливо коли справа стосувалась домашніх користувачів Mac, яким зазвичай не вистачає технічних знань або бажання заглиблюватись у досить складні поняття, пов'язані з технологією AppleRAID. У 2011 році, впровадження Core Storage, яке, хоча й було практично непомічене широким загалом, проклало шлях для кількох важливих функцій керування сховищами, реалізація яких стала можливою лише завдяки цій технології. Втім, разом із суттєвими перевагами, які вона надає комп'ютерам Macintosh, Core Storage має певні недоліки щодо безпеки збережених даних і шансів на їх відновлення.
Основи Apple Core Storage
Вперше з'явившись у macOS 10.7 Lion, технологія Core Storage була одним з ключових компонентів системи управління даними Mac аж до версії macOS 10.13 High Sierra. По суті, це пропрієтарна реалізація менеджера логічних томів від Apple – так само, як і Linux LVM, вона служить додатковим рівнем віртуалізації між схемою розділів, розташованою на фізичному накопичувачі, і файловими системами, записаними на цих томах.
Базова модель передбачає, що схема розділів надає певні логічні параметри фізичному диску і встановлює фіксовані межі між "регіонами" на ньому (так звані розділи), щоб ОС могла керувати інформацією окремо у кожному з регіонів і представляти їх користувачеві як окремі логічні диски. Після цього файлова система може бути записана на кожний із розділів, структури якої визначають спосіб, як саме здійснюється організація фрагментів даних.
На противагу, менеджер логічних томів забезпечує набагато більш гнучкі відносини між дисками та томами, ніж ті, що пропонує традиційна схема розділів: система може динамічно розподіляти розділи, тоді як один том може охоплювати більш ніж один фізичний пристрій.
Спочатку Core Storage послужила основою для FileVault 2 – технології, разом з якою до комп'ютерів Mac прийшли можливості нативного повнодискового шифрування у версії Lion. У Mountain Lion завдяки здатності одного тому Core Storage перевищувати місткість одного фізичного диска, використання технології було розширено до конфігурації Fusion Drive – поєднання жорсткого диска і твердотілого накопичувача, що трактується як один логічний елемент.
Підказка: Більше інформації про технологію Fusion Drive можна знайти у відповідній статті.
Яким чином організовано дані?
Структура Core Storage дуже схожа на структуру Linux LVM: вона складається з чотирьох основних рівнів, хоча останні збігаються не повністю – один або кілька фізичних томів об'єднуються в Групу логічних томів, в якій створюються Логічні томи і яка може експортувати одне або кілька Сімейств томів:
-
як і в Linux LVM, Фізичний том (Physical Volume або PV) – це базовий елемент, як правило, реальний фізичний пристрій зберігання (наприклад, жорсткий диск або SSD), але також може використовуватись образ диска або набір дисків, що складають систему RAID. Однак, щоб стати PV, сховище має бути розбите на розділи за допомогою схеми розділення GPT (GUID Partition Table) і отримати власний ідентифікатор під назвою GUID. Крім того, кожен з Фізичних томів зберігає певну інформацію про Групу логічних томів, до якої він належить;
-
Група логічних томів (Logical Volume Group або LVG) є еквівалентом Групи томів у LVM і охоплює один або більше Фізичних томів, що утворюють єдиний пул зберігання для Логічних томів. Як правило, створюється один Логічний том, місткість якого дорівнює сумі всіх Фізичних томів;
-
Логічний том (Logical Volume або LV) – це віртуальний пристрій зберігання даних у Групі логічних томів, який отримує файлову систему (HFS+) і точку монтування. Дані у Логічному томі організуються як у будь-якому звичайному томі, таким чином, щоб їх можна було легко отримати і прочитати.
-
Сімейство логічних томів (Logical Volume Family або LVF) – нове поняття, впроваджене Apple. Ця структура зберігає різні метадані, пов'язані з Логічними томами, що складають з Групу логічних томів, разом з набором властивостей щодо їх шифрування. Всі вказані властивості успадковуються кожним з Логічних томів.
Завдяки можливості проводити операції виділення пам'яті у фоновому режимі, Core Storage використовується для полегшення процесу шифрування диска, виконуваного FileVault 2. Раніше зашифрована файлова система FileVault зберігалась у звичайних файлах, але технологія на основі файлів була далекою від досконалості, особливо коли необхідно було зашифрувати увесь том. Core Storage дозволяє шифрувати дані тому на рівні блоків: вона створює Логічні томи для зашифрованих даних користувача і даних системи, а потім може переміщувати блоки до зашифрованого розділу або вилучати їх з нього. Таким чином, коли зашифрований том розблоковується, створюється новий логічний том, який містить всю зашифровану файлову систему і нерозподілений простір як один ланцюг блоків. Типова конфігурація FileVault 2 виглядає наступним чином:
-
/dev/disk0 – фізична система зберігання даних з кількома томами;
-
/dev/disk0s3 – Фізичний том на disk0s3, вміст якого зашифровано, а том включено до Групи логічних томів Core Storage;
-
/dev/disk1 – Логічний том у Групі логічних томів, що є відправною точкою для розшифрування вмісту disk0s3.
По-друге, Core Storage стала основним механізмом, що допомагає автоматизувати процес розподілу даних між двома компонентами Fusion Drive, який зазвичай має наступну будову:
-
dev/disk0 – фізичний твердотілий накопичувач, що входить до складу Core Storage LVG;
-
dev/disk1 – фізичний жорсткий диск, що входить до складу Core Storage LVG;
-
dev/disk2 – Логічний том, який складається з disk0 і disk1.
У цій конфігурації disk0 позначається як основний пристрій у Групі логічних томів, тому система надає йому пріоритет при зберіганні даних, таким чином, часто використовувані файли переміщуються у блоках по 128 КБ на швидше SSD-сховище, і навпаки. Міграція даних здійснюється чотирма основними викликами Core Storage: RdChunkCS, WrChunkCS, WrBgMigCS та RdBgMigrCs. У результаті користувач отримує оптимізовану систему, яка поєднує в собі продуктивність флеш-пам'яті та місткість накопичувача на основі магнітних дисків.
Переваги та недоліки Core Storage
Core Storage – надійний і високоефективний формат томів. Технологія слугує основою для Fusion Drive та його інтелектуальної міграції даних, не кажучи вже про динамічні трансформації, необхідні для реалізації шифрування FileVault 2. Однак, технологія має ряд істотних недоліків, які варто усвідомлювати:
-
на відміну від Linux LVM, Core Storage не підтримує тонке виділення;
-
розширення місткості "на льоту" недоступне в Core Storage, тому, на відміну від LVM, неможливо поступово збільшити пул зберігання. Власне, команда diskutil надає можливість зміни розмірів груп і томів Core Storage, але дана функція недостатньо задокументована і несе в собі ризик повної втрати даних;
-
утиліті Disk Utility бракує можливостей керування будовою Core Storage – не можна створювати або видаляти Логічні томи, переглядати Групи або Сімейства, не використовуючи термінал;
-
Core Storage не підтримує нову файлову систему Apple APFS: після встановлення MacOS High Sierra і пізніших версій (macOS Mojave для Fusion Drive) Групу логічних томів буде перетворено в спеціальний контейнер APFS;
-
Технологія не пропонує жодних опцій, які б гарантували відмовостійкість. Більш того, усі накопичувачі, що належать до Core Storage, є частиною єдиного цілого і недоступні окремо один від одного, навіть якщо лише один з дисків-компонентів вийшов з ладу або був відключений. Всі дані, які зберігає дефектна система, одразу ж втрачаються.
Можливість відновлення даних
Щоб переконатися, що проблемні диски дійсно є компонентами Core Storage, можна перевірити шістнадцяткові дані найбільшого розділу кожного з них: у позиції 0x58 має бути присутнім "число-сигнатура" 0x4353.
Всі користувацькі дані, що зберігаються у Core Storage, знаходяться на різних дисках-компонентах. Крім того, для їх правильної інтерпретації потрібні спеціальні зашифровані метадані в кінці кожного зі сховищ. Тому для відновлення даних абсолютно необхідна наявність всіх дисків – повна відмова хоча б одного з них призводить до незворотної втрати даних. Крім того, серйозне пошкодження зашифрованих метаданих або GUID сховища робить неможливим отримання читабельних файлів. Інші потенційні проблеми:
Втрата таблиці розділів одного з дисків
В цьому випадку сховище можна відкрити, якщо всі розділи буде визначено вручну: необхідно правильно вказати початковий сектор і розмір розділу в секторах.
Проблеми, пов'язані із шифруванням сховища
Коли на Mac вмикається повнодискове шифрування, система генерує спеціальний ключ шифрування і записує його в область метаданих або до спеціального файлу в розділі конфігурації під назвою EncryptedRoot.pllist.wipekey. Якщо область метаданих пошкоджена або доступ до EncryptedRoot.pllist.wipekey неможливий, на жаль, дані більше не вдасться розшифрувати, а їх відновлення не може бути здійснене у жоден спосіб.
В інших випадках метадані Core Storage розпізнаються UFS Explorer, і сховище можна зібрати, а потім просканувати за допомогою програми. Якщо Вам потрібно відновити дані із тома Core Storage, будь ласка, керуйтеся відповідною інструкцією.
Щоб дізнатись про інші технології, що використовуються для зберігання та управління даними, зверніться до розділу Технології зберігання.
Останнє оновлення: 7 жовтня 2020