1) Предисловие.
Сейчас, в дни технического прогресса объёмами в 2 Тб уже вряд ли кого-то можно удивить. Поэтому, вопрос использования дискового пространства больше 2 Тб, с каждым днём становиться всё актуальнее. И так, приступим.
В один из дней, когда старый файл-сервер начал понемногу давать сбои, руководство поставило задачу: подготовить новый сервер под файловое хранилище. Купили новый сервер, 8 жёстких дисков по 1 Тб, современный RAID-контроллер (Adaptec 5805) с возможностью горячей замены дисков. Захотелось установить именно FreeBSD 7.0 x64, ибо хотелось, что бы виделось больше 4 Гб памяти. Системы x32 плохо видят 4 и больше Гб памяти, иногда бывает, что видит, а иногда нет. Многие могут тут же возразить, что есть такое понятие как PAE, но с ним не гарантируется стабильная работа и это тема уже для другой статьи. Что из этого получилось – читаем ниже.
2) Установка. Как заставить ОС увидеть RAID-массив?
Создаём RAID-массив, например, 6-ой, в БИОСе самого RAID-контроллера. В итоге получается размер 5.4 Тб. Здесь сложностей не будет. Далее, собственно, вставляем диск и начинаем ставить «фряху». Заходим в режим CUSTOM -> Partition и видим, что жётских дисков у нас нет.
Перегружаемся и заходим опять в утилиту RAID-контроллера, удаляем старый рейд. Теперь немного теории. В мире RAID-массивов существует понятие «лун» (eng. LUN). Сейчас объясню. Когда у вас есть один жёсткий диск, вы его делите на разделы. То же самое можно делать и с RAID-массивами. Только здесь это это называется луны. То есть, лун – это раздел RAID-массива. И так, создаём лун, размером до 2 Тб. Я создал раздел 100 Гб. Иначе ОС опять не увидит разделы для установки. Разбиваем имеющееся место по своему усмотрению. После установки загружаем ОС.
Здесь хотелось сделать некое лирическое отступление. Дело в том, что у меня после установки ОС не могла смонтировать ни корень, ни всё остальное. Пробовал смонтировать вручную, (благо запомнил именование кореневого раздела) – не монтирует, говорит нет такого файла. Далее иду на сайт freebsd.org и смотрю, поддерживается ли мой адаптер. И вижу, что да. Но почему не находит раздел? Вручную подгружаю модули для этого контроллера, но ничего не меняется. Пришло время использовать драйвера, идущие в комплекте с RAID-контроллером, подумал я. Открываю диск и вижу, что дрова только для версии 6.3. Делаю образ диска «фряхи 7.0» и запихиваю туда эти драйвера, предварительно в директорию modules, а так же прописываю их в loader.conf, предварительно отключив стандартные дрова. Загружаюсь, и вижу, что пишет, что неверный исполняемый формат. Думаю, ну что ж не судьба. Качаю фряху 6.3 и проделываю те же операции и теперь, после установки ОС, система грузится! Причина была в драйверах, которые были в дистрибутиве. Толи сам контроллер такой нестандартный, то ли драйвера сбойные попались.
3) Настройка. Создание раздела больше 2 Тб
И так, ОС у нас стоит (стоит уже FreeBSD 6.3 x64 вместо FreeBSD 7.0). Тут меня ждал внеочередной сюрприз. Дело в том, что при установке ОС, когда подгружался модуль нестандартный (aacu64.ko, стандартный имел имя aac.ko) разделы именовались как aacdu0s1a, а когда грузилась ОС после установки она подргружала только стандартный модуль aac.ko (видимо при установке ОС, прописанный мною модуль не скопировался на раздел). Из-за этого не могла смонтировать / , ибо искала его на aacdu0s1a, а он фактически теперь находился на aacd0s1a. После этого вручную подмонтировал корень, поправил fstab в соответствии с новшествами, перегрузился. Теперь ОС грузится, но не видится раздел в 5Тб. Копирую модуль aacu64.ko в /boot/kernel, прописую его в /boot/loader.conf и перегружаюсь. ОС опять не может смонтировать корень (ибо теперь подгрузился модуль aacu64.ko, и разделы теперь именуются aacdu0s1a). Опять монтирую, правлю fstab и ребут. Только после этого ОС загрузилась нормально и увиделся раздел в 5Тб.
Создавать раздел будем с помощью GPT. Для этого последовательно выполним такие команды.
1. Создайте GPT том (устройство /da1)# gpt create -f /dev/aacdu1p1
2. Создайте раздел на этом томе (по умолчанию в UFS)
# gpt add /dev/aacdu1p1
3. Проверьте результат операции:
# gpt show /dev/aacdu1p1
4. Отформатируйте раздел
# newfs /dev/aacdu1p1
5. Смонтируйте этот раздел (например, в /mnt)
# mount /dev/aacdu1p1 /data
Замечу, что на создание файловой системы на этом разделе у меня ушло порядка получаса. Оно и не удивительно, 5.4 Тб. Теперь несколько перезагрузок для тестов и проверка работоспособности.