Введение

После того, как моя домашняя коллекция CD и DVD-дисков перевалила за 300 штук, у меня появился вполне резонный вопрос – как со всем этим управляться? Перебирать диски в поисках нужного оказалось очень долго и нудно.

После поисков в Интернете выяснилось, что для автоматизации библиотеки дисков предлагалось только одно доступное решение – модули Dacal CD Library на 150 дисков. Их емкость можно наращивать каскадами по 5 модулей в стойке, всего до 128 модулей в цепочке, т.е. 150х128=19200 дисков. Но оказалось, что затраты на приобретение модуля, в расчете на стоимость хранения одного диска в подобной библиотеке слишком велика – 38 рублей, а также не устраивали габариты модуля библиотеки (370х390х180мм) и его вес (3,5 кг). Также, недостатком можно считать, что эту систему надо располагать на расстоянии длины USB-шнура от компьютера, т.е. не более 1,5-2 метров.

Естественно, я обратил внимание на жесткие диски. Имеющиеся в продаже диски емкостью 500 Гб и стоимостью 2000 рублей меня вполне устраивали, т.к. стоимость хранения 1 Гб у них равна 4 рублям.

При попытке переписать библиотеку дисков на жесткий диск выяснилось, что около 10% ранее записанных дисков не читается – появились царапины или изначально были записаны некачественные болванки. В связи с этим появились сомнения – насколько надежно будут храниться данные на жестком диске – ведь при отказе диска я потеряю всю библиотеку.

Таким образом я пришел к мысли о необходимости использовать для хранения библиотеки RAID-массив. Массив с зеркалированием был отвергнут сразу, было жалко использовать удвоенное число дисков. RAID-5 подходил по всем параметрам – его емкость равна сумме емкостей всех дисков массива минус один. Такая плата за надежность хранения данных представляется мне нормальной.

Аппаратный контроллер RAID-массива мне не понравился – слишком высокая стоимость контроллера. И еще - при отказе контроллера, массив ничем невозможно поднять, кроме как, точно таким же контроллером. Иметь два дорогих контроллера для надежности – это очень накладно. И диски для контроллера надо иметь одинаковые. В, общем, дорогое решение для дома.

Оставался программный RAID-массив. После поисков в Интернете было найдено решение - FreeNAS на основе операционной системы FreeBSD. Решение легкое и изящное, но… Выяснилось, что FreeBSD поддерживает не все контроллеры жестких дисков на моей материнской плате – контроллер JMB363 SATA, который там стоял, оказался FreeBSD не по зубам.

У меня оставалось только одно решение – собрать программный массив RAID-5 под Windows XP. Для того, чтобы емкость жестких дисков использовалась только для массива, было решено, что операционная система массива будет грузиться с USB Flash диска.


Выбор железа

Главное в такой системе – вместительный корпус. Был взят пустой старый корпус от промышленного компьютера (халява) с 8 гнездами 5,25” под жесткие диски.

Пустой серверный корпус

Поскольку он был велик, я его обрезал под необходимый размер, и покрасил в черный цвет акриловой краской из баллончика. В принципе, корпус может быть любой, лишь бы было необходимое количество гнезд 5,25” под жесткие диски.

В качестве блока питания был использован FSP ATX-400 ATX (24pin) 400W. Хотя потребляемая массивом мощность равна 200 ваттам, двукратный запас по мощности блока питания позволял надеяться на более качественное питание (по напряжениям 5В и 12В), выдаваемое на массив. Блок пришлось доработать – добавить разъемы для питания жестких дисков.

Для установки жестких дисков я приобрел 8 модулей SATA Rack Mount черного цвета с вентиляторами для охлаждения дисков. Для улучшения охлаждения дисков в пластмассе модулей были прорезаны дополнительные отверстия. Эти модули также позволяют быстро заменить неисправный диск.

Будущий NAS - вид спереди

Материнская плата подойдет любая, с необходимым количеством разъемов SATA на ней и возможностью в BIOS загрузки с USB-HDD диска. В моем случае была использована плата ABIT AB9-PRO i965P ATX SATA, с 9 разъемами SATA-2, 1 - E-SATA и 1 – IDE.

Будущий NAS - вид сзади

Так как в материнской плате не оказалось встроенной видеокарты, я поставил старенькую PCI-карту S3 Virge. Опять халява :)

Для массива я приобрел 8 дисков Samsung 500Gb (16Mb) HD501LJ SATA-2 7200rpm. Выбор именно SATA-2 винчестеров обусловлен более высокой скоростью обмена, а главное – 8 кабелей для подключения SATA дисков занимают существенно меньшее место в корпусе, по сравнению с 8 IDE кабелями и это оказывает свое влияние на продуваемость корпуса, т.е на охлаждение. Можно использовать и более емкие диски, например диски на 1Тб, и увеличить размер массива до 7Тб, но на момент создания массива, по соотношению емкость/цена, эти диски оказались оптимальными.

Дисковый массив - вид изнутри

Данные о системе

Оперативная память – 1 плашка DDR-2 PC667 на 1024 Мб. С этим объемом получился перебор – использование памяти никогда не превышало 105 Мб.

Процессор - INTEL Celeron-420, 1,6 ГГц. С процессором наоборот, получился недобор. Если скорость чтения с массива практически не зависит от процессора и составляет 85-95 Мб/сек по сети, то запись нагружает процессор до 95-97% (т.к. это все-таки программный массив) и скорость становится в 3-4 раза меньше скорости чтения (20-30 Мб/сек). Таким образом, чем производительнее процессор, тем быстрее работает система на запись.

Для установки и запуска операционной системы Windows XP я использовал Kingstone Flash-USB DataTraveler объемом 2 Гб.

Забегая вперед хочу сказать, что когда я собрал все железо в корпус и включил, эффект от его работы превзошел все мои ожидания. Система ревела как реактивный самолет на взлете. Еще бы - 8 вентиляторов продувают жесткие диски, 1 вентилятор - для процессора, 1 вентилятор - для блока питания и 1 вентилятор – продувает корпус. Итого – 11 штук. Самые шумные – вентиляторы для дисков, они же самые маленькие. Но без них никак было нельзя. Если с ними температура дисков поднималась не более 37°С, то без них температура моментально поднималась к 47-48°С, слишком плотно стояли диски. Заменить воздушную систему охлаждения на более тихую, водяную, представлялось весьма проблематичным из-за отсутствия ватерблоков для жестких дисков и общей высокой стоимости такой системы охлаждения.

Загрузочная флэшка

В таком виде массив было нельзя ставить там, где находились люди (т.е. в гостинной) и для его перенесения в такое место, где шум никому не мешает (в туалет), пришлось к общему списку железа добавить адаптер Wi-Fi. Я использовал D-Link DWA-520 PCI 802.11g с турбо-режимом. Скорость обмена с изделиями D-Link, также имеющими турбо-режим составляет 108 Мб/с.

Шаманские пляски (с бубном)

1. Подготовка Flash-USB диска

Для использования подходит любой Flash-USB диск, объемом 2 Гб. Замечание первое: чем больше скорость чтения с Flash-USB диска, тем быстрее грузится операционная система при включении. Хотя, если система будет работать в режиме 24/7, скорость загрузки при включении не будет являться определяющей.

Замечание второе: почему-то Flash-USB диски, даже, если они одного производителя, одной емкости и отформатированы одинаково (FAT или FAT32), не все из них видны в BIOS материнской платы, как USB-HDD диски. И если они не видны в BIOS, соответственно Windows на них устанавливаться не будет. В чем тут зарыта собака, я так и не понял, хотя попробовал не менее 20 десятков изделий (друзья давали попробовать).

Я использовал для подготовки Flash-USB диска следующую программу - FlashBoot v1.4.0.157, которая гарантированно давала результат. После ее применения, любая флэшка в BIOS материнской платы определялась, как USB-HDD диск.

2. Установка WindowsXPна Flash-USB

Собираем систему, не подключая жесткие диски. Подключаем Flash-USB диск и проверяем, виден ли он в BIOS материнской платы, как USB-HDD диск. Для установки Windows XP подключаем CD-ROM дисковод. Он может быть с любым интерфейсом - IDE или SATA, только не USB. При установке Windows XP CD-ROM с интерфейсом USB конфликтует с флэшкой. Еще с флэшкой конфликтует при установке USB-клавиатура и USB-мышь. Они должны быть с разъемами PS/2.

Запускаем установку с CD-ROM. Происходит первоначальная загрузка необходимых файлов установки, далее выбор диска, на который надо установить Windows XP, и далее, после перезагрузки компьютера, появляется «синий экран смерти» с ошибкой - STOP 0x000007b. Выключаем компьютер. Вынимаем флешку.

Подключаем флешку к любому компьютеру с установленной Windows XP.

Берем архив FlashBootXP_ver1.rar. Распаковываем во временную папку на жестком диске. В этом архиве 4 файла: usb.inf, usbport.inf, usbstor.inf, usbboot.reg.

Запускаем редактор реестра regedit.

Выделяем раздел HKEY_LOCAL_MACHINE. В меню «Файл» выбираем «Загрузить куст…».

Выбираем папку – Буква_флешки\Windows\System32\Config\. В этой папке выбираем файл – SYSTEM.

В окне выбора раздела вводим название раздела – FlashUSB. Щелкаем правой клавишей мыши по этому разделу. В меню выбираем «Разрешения». В открывшемся окне выбираем «Администраторы» и «Полный доступ». Далее - «Применить». Нажимаем кнопку «Дополнительно».

В открывшемся окне выбираем «Администраторы» и ставим чек-пойнт «Заменить разрешения для всех дочерних объектов заданными здесь разрешениями, применимыми для дочерних объектов». Далее кнопки «ОК» и «ОК».

Переходим во временную папку, в которую был распакован архив FlashBootXP. Щелкаем правой кнопкой мыши на файле usbboot.reg. В открывшемся меню выбираем «Слияние».

Переходим опять в редактор реестра. Выбираем раздел HKEY_LOCAL_MACHINE\FlashUSB. В меню «Файл» выбираем «Выгрузить куст…». Закрываем редактор реестра.

Копируем файлы usb.inf, usbport.inf, usbstor.inf из временной папки в папку - Буква_флэшки\Windows\INF.

Вынимаем флэшку из компьютера.

Вставляем флэшку в компьютер массива. Включаем компьютер, грузимся с флешки («синий экран смерти» больше не появляется) и продолжаем установку до завершения.

Когда Windows XP закончит устанавливаться, завершаем установку драйверами для материнской платы.

По завершению установки отключаем CD-ROM. Может получиться так, что без CD-ROMa система не будет грузиться. Попробуйте подключить любой диск массива. Проблема должна исчезнуть.

Далее превращаем флешку в локальный жесткий диск.

Отрываем «Мой компьютер» – «Свойства» – Вкладка «Оборудование» - «Диспетчер устройств». В диспетчере устройств находим «Дисковые устройства». Раскрываем этот раздел. Находим в списке свою флешку. Двойной щелчок мыши на ней. В раскрывшемся окне выбираем закладку – «Сведения».

На данной вкладке щелчком мыши выделяем «Код устройства» и копируем его, т.к. записать его не всегда возможно, он бывает виден не весь, а передвинуть его для просмотра невозможно.

Берем драйвер от Hitachi Microdrive. Там два файла: cfadisk.inf и cfadisk.sys. Открываем файл cfadisk.inf своим любимым текстовым редактором. Находим следующие строки:

[cfadisk_device]

%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_LEXAR&Prod_JD_LIGHTNING_II&Rev_1100

%Microdrive_devdesc% = cfadisk_install,USBSTOR\Disk&Ven_JetFlash&Prod_TS1GJF110&Rev_0.00

%Microdrive_devdesc% = cfadisk_install,USBSTOR\DISK&VEN_&PROD_USB_DISK_2.0&REV_P

В последней строке удаляем все, после – « %Microdrive_devdesc% = cfadisk_install, ». На освободившееся место вставляем ранее скопированный «Код устройства». Потом в этой строчке находим последний слеш « \ » и удаляем его и все, что расположено в этой строке до конца. Сохраняем файл.

Снова последовательность - «Мой компьютер» – «Свойства» – Вкладка «Оборудование» - «Диспетчер устройств». В диспетчере устройств находим «Дисковые устройства». Раскрываем этот раздел. Находим в списке свою флешку. Двойной щелчок мыши на ней. В раскрывшемся окне выбираем закладку – «Драйвер». Щелкаем по кнопке «Обновить».

В открывшемся окне выбираем чек-пойнт «Нет, не в этот раз». Щелкаем клавишу «Далее». Выбираем чек-пойнт «Установка из указанного места». Щелкаем клавишу «Далее». Выбираем чек-пойнт «Не выполнять поиск. Я сам выберу драйвер». Щелкаем клавишу «Далее». Щелкаем по клавише «Установить с диска». Щелкаем по клавише «Обзор» и раскрываем папку, где находится драйвер Hitachi Microdrive с модифицированным файлом cfadisk.inf. Указываем на этот файл и, не взирая на все протесты Windows о том, что этот драйвер не подходит, не прошел тестирование на совместимость и т.д., насильно устанавливаем драйвер.

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

Кстати, данный способ хорош для современных флешек емкостью от 4Гб и более. После этого их можно форматировать в любую файловую систему, поддерживаемую Windows, можно создать на флешке несколько разделов, а система NTFS позволяет преодолевать ограничения на размер одного файла в 2 Гб.

RAID-5 под WindowsXP (из-за чего все и затевалось)

Активация поддержки массивов RAID-5 в WindowsXP

В Windows XP существует поддержка массивов RAID-5, просто она не включена. Для активации этой функции необходимо проделать следующие телодвижения.

Вынуть флешку из массива и подключить к любому компьютеру с установленной Windows XP. Скопировать в любую временную папку следующие файлы:

Любым HEX-редактором отредактировать эти файлы:

До редактирования:

0000f1f0h: 74 00 54 00 79 00 70 00 65 00 00 00 57 49 4E 4E ; t.T.y.p.e...WINN

0000f200h: 54 00 00 00 53 45 52 56 45 52 4E 54 00 00 00 00 ; T...SERVERNT....

После редактирования:

0000f1f0h: 74 00 54 00 79 00 70 00 65 00 00 00 53 45 52 56 ; t.T.y.p.e...SERV

0000f200h: 45 52 4E 54 57 49 4E 4E 54 00 00 00 00 00 00 00 ; ERNTWINNT.......

До редактирования:

00005140h: 4C 41 4E 4D 41 4E 4E 54 00 00 00 00 53 45 52 56 ; LANMANNT....SERV

00005150h: 45 52 4E 54 00 00 00 00 57 49 4E 4E 54 00 00 00 ; ERNT....WINNT...

После редактирования:

00005140h: 4C 41 4E 4D 41 4E 4E 54 00 00 00 00 57 49 4E 4E ; LANMANNT....WINN

00005150h: 54 00 00 00 00 00 00 00 53 45 52 56 45 52 4E 54 ; T.......SERVERNT

До редактирования:

00001c30h: 73 65 72 76 65 72 6E 74 00 00 00 00 6C 61 6E 6D ; servernt....lanm

00001c40h: 61 6E 6E 74 00 00 00 00 50 72 6F 64 75 63 74 54 ; annt....ProductT

После редактирования:

00001c30h: 77 69 6E 6E 74 00 00 00 00 00 00 00 6C 61 6E 6D ; winnt.......lanm

00001c40h: 61 6E 6E 74 00 00 00 00 50 72 6F 64 75 63 74 54 ; annt....ProductT

Сохранить файлы и закрыть. Далее скопировать эти файлы из временной папки в следующие места на флешке:

Вынуть флэшку из компьютера и подключить к массиву.

Создание массива RAID-5

Вставить на свои места все жесткие диски для создания массива. Включить компьютер и загрузиться с флешки.

Открываем «Панель управления» - «Администрирование» - «Управление компьютером» - «Управление дисками». Шелкаем правой кнопкой мыши на каждом диске, который будет входить в состав массива, выбираем «Преобразовать в динамический». Дожидаемся конца преобразования.

Далее выбираем «Создать том». Указываем в чек-пойнте - «RAID-5». Нажимаем кнопку «Далее». В следующем окне указываем все диски, которые будут входить в массив. Нажимаем кнопку «Далее».

Замечание: Размеры всех дисков в массиве обрежутся по диску минимального размера, входящего в массив, т.е., совсем не обязательно подбирать диски одинакового размера и одного производителя. Кстати, у меня на материнской плате диски подключены к трем микросхемам контроллеров жестких дисков разных фирм.

В следующем окне назначаем букву диска. Нажимаем «Далее». В следующем окне выбираем тип файловой системы – NTFS и отмечаем чек-пойнт «Быстрое форматирование». Нажимаем кнопку «Далее».

Как только процесс завершится, наступает счастье – массив RAID-5 почти готов к работе.

Окончательная доводка

Для окончательной доводки системы необходимо:

Далее, воспользовавшись программой XPLite 1.7 Rus, нужна версия «Профессионал», удалить из Windows XP все лишние приложения и службы, оставив только дисковые и сетевые функции. Для удаленного управления массивом устанавливаем какую-нибудь программу для удаленного управления, например Radmin или что-нибудь подобное.

Теперь отключаем монитор, клавиатуру и мышь. Все.

Что мы с этого всего имеем

Стоимость массива

Получилось по моим подсчетам около 1000$. Стоимость хранения 1 Гб – около 7 рублей. Извините, я не посчитал стоимость Windows XP и затраты электроэнергии на функционирование массива. Можно попытаться еще больше минимизировать затраты на систему.

Если поискать в Интернете стоимость готовых решений такого объема, их стоимость просто ошеломляет.

Достоинства

Недостатки

Сейчас на массиве у меня хранится:

Все это у меня занимает около 2Тб. Место еще есть…

Выражаю искреннюю благодарность:

- Дмитрию Чеканову, Патрику Шмидту, Ахиму Русу – за статью «Создаем программный массив RAID-5 под Windows XP»;

- сайту www.flashboot.ru (авторов статей к сожалению не указано) за статьи «Установка Windows XP SP2 на USB Flash Drive» и «Работа с USB Flash, как с жёстким диском».

Виктор Некрасов
van (at) tulachermet.ru
23/11.2008