Ноя
22
2012

Как собрать загрузочный RAID0 из SSD на Хакинтоше и почему это плохо.

Итак, мои дорогие маленькие друзья-хаководы. Нам всем всегда хочется, чтобы наш компьютер работал быстро, очень быстро, еще быстрее!

Один из недорогих способов сделать побыстрее — поставить два накопителя в RAID0. Это, в теории, дает прибавку в производительности по чтению примерно в 1,7 раза. А если поставить вместо обычных накопителей на жестких магнитных дисках SSD, то, в теории, наш компьютер должен начать задавать вопросы типа «Это вы Сара Коннор?». Шутка, конечно, но ведь в каждой шутке есть доля шутки.

Тем не менее, при линейном чтении RAID массив будет выигрывать у одиночного жесткого диска по скорости чтения и записи, поскольку чтение и запись в таком режиме производится последовательно сначала на один, а потом на другой диск. Плюс, ко всему прочему, мы получаем объем RAID накопителя, равный сумме объемов дисков-участников массива.

Минус такого подхода только один — вероятность потери данных вырастает, поскольку, если хотя бы один из накопителей выйдет из строя, то весь массив разрушится и данные восстановить не удастся. Тут Вы наверняка ожидаете фразы «И это плохо». Нет, не дождетесь. Конечно, в потере данных хорошего ничего нет, но есть резервные копии. У вас нет резервных копий? А должны быть. Даже, я бы сказал, обязаны. Если их нет — я не рекомендую читать дальше, сделать паузу и начать делать резервные копии ваших важных данных.

А если вспомнить, что SoftRAID массивы на Mac OS собираются почти в два клика, то грех не установить операционную систему на RAID, чтобы было так быстро, что тапки бы слетели!

Итак, я думаю, что все Хаководы знают тот факт, что чтобы OS X смогла загрузиться, её нужно немного обмануть, заставить думать, что она запускается на настоящем компьютере производства компании  Apple. Сейчас существует пачка загрузчиков, которые направлены как раз на это — Clover, XPC, Chameleon, Chimera… Загрузчик подсовывает OS X некоторые параметры железного интерфейса (в простонародье именуемого EFI) настоящего Макинтоша, после чего она успешно загружается.

Но есть одна проблема — в случае загрузки с RAID у нас имеется два жестких диска, но загрузчики понимают только один. Точнее, не так — загрузчики не умеют работать c SoftRAID массивами OS X. А поскольку у нас данные хранятся на массиве, то и брать параметры загрузчику неоткуда, поскольку массива он не видит. Он видит просто два жестких диска. И наша задача — сделать так, чтоб загрузчик мог получить необходимые ему данные.

В Интернете есть дикое количество различных мануалов по установке OS X на RAID. Но вот что странно, они все предполагают наличие у вас лишнего жесткого диска, на котором будет уже установленный, настроенный и работающий Хакинтош, который потом, путем клонирования будет перенесен на массив. Меня такой подход кардинально не устроил по той простой причине, что работающий и настроеный Хакинтош у меня был, но он базировался на более старой версии OS X. А мне хотелось чего-то новенького. То есть, вариант, в октором в установке ОС участвуют 3 жестких диска для меня был неприемлем.

Итак, у нас имеется два SSD диска и установочная флешка с OS X 10.8.2 (лучше сделать именно флешку, поскольку установка ОС с оптического диска у меня заняла около 1,5 часов, а с флешки — 23 минуты). Программу для создания загрузочной флешки из купленной вами в AppStore OS X можно без труда найти в Интернете. Еще нам понадобится загрузчик, я использовал набор MultiBeast, вместе с ним ставится загрузчик Chimera с сайта tonymacx86.com. И да, перед нчалом упражнений с массивом желательно проверить, что устанавливаемая вами ОС способна запуститься с одного диска.

Предупреждение — все указанные действия вы выполняете на свой страх и риск, ни за какие последствия, в т.ч. порчу оборудования, утерю данных, увеличения роста волос на носу автор ответственности не несёт!

1. Загружаемся в установочную среду OS X. С флешки.

2. Выбираем язык установщика, лезем в верхнее меню и в Утилитах выбираем Дисковую утилиту (Disk Utility).

3. Создаем RAID-массив. Если не знаете как — то бегом в Гугл!

 

Создаем массив

Создаем массив

4. Очень важный пункт! Нам необходимо выяснить идентификатор устройства!

Для этого, тыкаем на созданный нами том (Logical partition, который Вы, как я надеюсь, сделали единственным) и находим вверху синенькую кнопочку с буквой «i», что значит «информация». Находим непонятную белиберду из цифр или букв очень большой длины, перемежаемых черточками и озаглавленную Universal Unique Identifier и выглядящую примерно так: E2702ED9-A1F8-3E66-9862-E9D6674447C7. Эту белиберду надо запомнить, записать на бумажку и сфотографировать сотовым телефоном и пару раз — хорошим фотоаппаратом, чтобы точно не потерять. И нужно иметь в виду, что рядом есть похожая белиберда, но называется она «RAID Identifier». Если будете использовать ее, то всё пройдет как по маслу, за исключением одного — у вас не будут работать сервисы типа AppStore, iCloud и прочих!

Определяем идентификатор

Определяем идентификатор

5. Производим установку OS X.

Установщик предупредит, что фичи типа шифрования FileVault или Recovery Mode работать не будут. Но нам без разницы, верно? По окончаниии установки потребуется перезагрузка. Вот тут-то и начинаются расхождения с многими мануалами. После перезагрузки нам нужно будет запустить загрузчик с установочной флешки, чтобы загрузить свежеустановленную ОС и поставить туда загрузчик и необходимые кексты. Но ведь вы помните, что наш загрузчик не знает, с какого диска грузить ОС? Именно для этого мы и выясняли UUID нашего массива.

6. Загружаемся с установочной флешки, и останавливаем загрузчик на моменте выбора накопителя, с которого требуется загрузить ОС!

Теперь нам надо указать загрузчику, что читать нам надо массив, а не диск. Итак, пишем rd=uuid boot-uuid=E2702ED9-A1F8-3E66-9862-E9D6674447C7. Цифробуквы, естественно, у Вас будут другими, те, которые вы записали и запомнили на несколько раз. После этого выбираем флешку и нажимаем «Ввод». Немного ждем и система должна загрузиться. Не выбирайте диски-участники массива — на них пока нет загрузчика, система не запустится!

Загружаем установленную ОС с помощью флешки

Загружаем установленную ОС с помощью флешки

7. Выполняем первичную настройку системы.

8. Устанавливаем необходимые кексты и загрузчик.

Как я уже упоминал, я использую MultiBeast, с которого ставлю идентификатор компьютера, который у меня считается MacPro3,1, и драйверы сетевой карты. Что нужно Вам — отдельный вопрос, тут я его не рассматриваю. таким образом, мы получили установленный на массив загрузчик и папку Extra с кое-какими файлами, в том числе  «org.chameleon.Boot.plist»  (или «com.apple.Boot.plist» в случае с Хамелеоном)

9. Изменяем com.apple.Boot.plist чтобы загрузчик знал, откуда грузиться.

Для этого открываем org.chameleon.Boot.plist для редактирования. Я не знаю, кому и как нравится, я обычно открываю терминал и пишу комадну «sudo nano /Extra/org.chameleon.Boot.plist». Учтите, файл считается системным, потребуются права суперпользователя!

В этом файле находим строчку примерно такого вида:

<key>Kernel Flags</key>
<string>darkwake=0</string>

После <string> дописываем «rd=uuid boot-uuid=E2702ED9-A1F8-3E66-9862-E9D6674447C7 «, опять же не забываем заменить мою белиберду на свою! Дожно получиться:

<key>Kernel Flags</key>
<string>rd=uuid boot-uuid=E2702ED9-A1F8-3E66-9862-E9D6674447C7 darkwake=0</string>

Содержимое org.chameleon.Boot.plist

Содержимое org.chameleon.Boot.plist

Теперь наш загрузчик знает, устройство с каким идентификатором надо использовать для загрузки, но установлен он на массив, который при загрузке прочесть не удастся! Итак, служебные файлы надо перенести на служебный раздел.

10. Выдираем из пакета файлы загрузчика.

Берем полезную утилиту Pacifist и выдергиваем из установочного пакета Химеры файлы: boot, boot0 and boot1h.Кладем их в какую-нибудь папку чтоб не потерять. Например, в папку /Boot

Содержимое установщика Химеры

Содержимое установщика Химеры

11. Переносим загрузчик на служебный загрузочный раздел.

При создании RAID массива, помимо основного раздела с данными на каждом из участников массива создается дополнительный служебный раздел типа Apple_Boot по имени Boot OSX. Нам нужно найти эти разделы, дав в терминале команду «diskutil list».

Допустим, это получились диски /dev/disk0 и /dev/disk1, на них это раздел номер 3.

Копируем выдранные файлы на оба этих раздела, но в разные места — разные файлы.

Сначала boot0 в MBR, тут нам не надо заботиться о номере раздела, достаточно номера диска:

sudo fdisk -f /Boot/boot0 -u -y /dev/rdisk0
sudo fdisk -f /Boot/boot0 -u -y /dev/rdisk1

Потом отправляем boot1h

sudo dd if=/Boot/boot1h of=/dev/rdisk0s3
sudo dd if=/Boot/boot1h of=/dev/rdisk0s3

И оставшийся файл boot с папкой Extra надо скопировать уже на разделы Boot OSX, для проведения данной операции их надо примонтировать:

sudo diskutil mount disk0s3
sudo cp /Boot/boot /Volumes/Boot\ OS\ X/
sudo cp -R /Extra /Volumes/Boot\ OS\ X/
sudo diskutil unmount disk0s3
sudo diskutil mount disk1s3
sudo cp /Boot/boot /Volumes/Boot\ OS\ X/
sudo cp -R /Extra /Volumes/Boot\ OS\ X/
sudo diskutil unmount disk1s3

Следует иметь в виду, что при изменении хоть одного из файлов, находящихся в папке Extra папку необходимо будет снова скоприовать с помощью вышеуказанных команд. Я просто написал скрипт, который сам это делал за секунды. 12. Перезагружаем компьютер. Если всё сделано верно, то система должна стартовать без проблем, в BIOS в качестве загрузочного нужно будет указать любой из дисков — участников массива.

iCloud работает

iCloud работает

Итак, мы получили установленную на RAID массив OS X и впечатляющее быстродействие. Теперь можно воспользоваться Ассистентом миграции и перенести ваши файлы и программы с резервной копии, если таковая имеется. Производительность при линейном чтении получилась впечатляющая. Случайное чтение-запись я не проверял, т.к. не было необходимости.

Скорость чтения-записи одного Vertex 4

Скорость чтения-записи одного Vertex 4

Скорость чтения-записи двух Vertex 4 в RAID0

Скорость чтения-записи двух Vertex 4 в RAID0

«А почему установка OS X на RAID из двух SSD — плохо?» — спроситы вы?

Есть пара минусов. Например, проверка прав доступа на RAID-массиве почему-то не работает. И если появятся какие-то проблемы, то будет неприятно.

А еще недавно Apple презентовала функцию создания гибридного LVM средствами системы OS X 10.8.2 и выше (насчет предыдущих версий ОС у меня нет проверенной информации) под названием Fusion Drive, и деньги, потраченные на второй SSD можно было бы потратить на обычний жесткий диск, получив неплохую производительность и большой объем. Что я недавно и проделал, и сейчас тестирую Fusion Drive состоящий из двух Hitachi Deskstar 1TB в режиме RAID0 с одним SSD OCZ Vertex4 128GB, и скоро поделюсь описанием процесса и результатами.

Поделиться в соц. сетях

Опубликовать в Facebook
Опубликовать в Google Buzz
Опубликовать в Google Plus
Опубликовать в LiveJournal
Опубликовать в Мой Мир
Опубликовать в Одноклассники
Опубликовать в Яндекс
Написал Илья Гловацкий в рубрику Apple |
Комментарии:

Нет комментариев »

Подписаться на рассылку комментариев к этому посту по RSS TrackBack-ссылка

Оставить комментарий

Войти с помощью: 

Блог работает на WordPress | Aeros Theme