Я установил новый сервер (мой первый с этой версией Linux). Я установил пару чистых жестких дисков SATA на 160 ГБ (один Seagate и один WDC, но с точно таким же количеством секторов LBA) на старый компьютер и решил установить Scientific Linux 7.0 (переименованный RHEL) в RAID 1 (программное обеспечение зеркальная) конфигурация.
Первая проблема заключалась в том, что я не мог понять, как заставить установщик SL / RHEL (Anaconda) настроить два диска для RAID1. Итак, я загрузился с компакт-диска PartedMagic и использовал его для разбиения на разделы.
Я разделил два диска одинаково. На каждом диске есть большой раздел для установки RAID1 + ext4. /
, небольшой (в настоящее время неиспользуемый) раздел для RAID1 + ext3, который будет смонтирован в /safe
и раздел подкачки Linux объемом 3 ГБ. я использовал fdisk
для изменения типов разделов RAID на каждом диске на FD, и mdadm
для построения RAID-массивов:
mdadm --create --verbose /dev/md0 --raid-devices=2 --level=1 /dev/sda1 /dev/sdb1
mdadm --create --verbose /dev/md1 --raid-devices=2 --level=1 /dev/sda2 /dev/sdb2
Затем я выключился, загрузил SL DVD и снова попытался установить. На этот раз установщик распознал массивы RAID1, отформатировал их для ext4 и ext3 соответственно и установил без проблем.
На данный момент все было в порядке. Я выключил его, запустил снова, и он загрузился нормально. Все идет нормально.
Затем я протестировал функциональность RAID1: выключил компьютер, удалил один из дисков и попытался его загрузить. Я ожидал, что он отобразит некоторые сообщения об ошибках о деградации RAID-массива, а затем перейдет к обычному экрану входа в систему. Но это не сработало. Вместо этого я получил:
Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" to try again
to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):
То же самое происходит независимо от того, какой диск отсутствует.
Это не хорошо! Зеркальные диски предназначены для обеспечения продолжения работы сервера в случае выхода из строя одного из дисков.
Ctrl-D просто возвращает меня к повторению того же "Welcome to emergency mode
"экран. Также нужно ввести мой пароль root, а затем"systemctl default
".
Итак, я попробовал провести эксперимент. В меню загрузки я нажал е отредактировать параметры загрузки ядра и изменить "rhgb quiet
"к"bootdegraded=true
"а потом загрузился. Никакой радости.
Это позволяло мне видеть больше сообщений о состоянии, но не позволяло машине нормально загружаться при отсутствии диска. Он все еще остановился на том же "Welcome to emergency mode
"Экран". Вот то, что я видел с удаленным диском Seagate и оставшимся диском WDC. Последние несколько строк выглядят следующим образом (за исключением того, что "...." обозначает место, где я устал печатать):
[ OK ] Started Activation of DM RAID sets.
[ OK ] Reached target Encrypted Volumes.
[ 14.855860] md: bind<sda2>
[ OK ] Found device WDC_WD1600BEVT-00A23T0.
Activating swap /dev/disk/by-uuid/add41844....
[ 15.190432] Adding 3144700k swap on /dev/sda3. Priority:-1 extents:1 across:3144700k FS
[ OK ] Activated swap /dev/disk/by-uuid/add41844....
[ TIME ] Timed out waiting for device dev-disk-by\x2duuid-a65962d\x2dbf07....
[DEPEND] Dependency failed for /safe.
[DEPEND] Dependency failed for Local File Systems.
[DEPEND] Dependency failed for Mark the need to relabel after reboot.
[DEPEND] Dependency failed for Relabel all file systems, if necessary.
[ 99.299068] systemd-journald[452]: Received request to flush runtime journal from PID 1
[ 99.3298059] type=1305 audit(1415512815.286:4): audit_pid=588 old=0 auid=4294967295 ses=4294967295 subj=system_u:system_r:auditd_t:s0 res=1
Welcome to emergency mode! After logging in, type "journalctl -xb" to view
system logs, "systemctl reboot" to reboot, "systemctl default" to try again
to boot into default mode.
Give root password for maintenance
(or type Control-D to continue):
Таким образом, похоже, что установка на зеркальные диски RAID1 просто удвоит вероятность сбоя диска, который приведет к остановке сервера (поскольку здесь два диска вместо одного). Это не то, чего я надеялся достичь с зеркальными дисками.
Кто-нибудь знает, как заставить его загружаться и работать "нормально" (с деградированным массивом RAID1) при выходе из строя жесткого диска?
Два других примечания:
Я новичок в RHEL / SL / CentOS 7, поэтому на экране «Выбор программного обеспечения» во время установки SL мне пришлось гадать. Я выбрал: «Универсальная система» + FTP-сервер, файловый сервер и сервер хранения, Office Suite и производительность, гипервизор виртуализации, инструменты виртуализации и средства разработки.
Я вижу несколько безобидных ошибок:
ATA
Икс: softreset failed (device not ready)
"Икс"зависит от того, какие диски установлены. Я получаю больше таких ошибок с двумя установленными дисками, чем с одним.
Оказывается, проблема была не в основном разделе RAID1, а в других разделах.
Во-первых, мне не следовало использовать разделы подкачки. Это было просто глупо. Даже если бы это сработало, это, вероятно, сделало бы систему уязвимой для сбоя, если бы на диске образовался сбойный блок в разделе подкачки. Очевидно, что лучше использовать файл подкачки в разделе RAID1; Не знаю, о чем я думал.
Однако "лишний" ext3 md1
перегородка тоже была проблемой. Не знаю почему.
Как только я удалил ссылки на другие разделы (два раздела подкачки и ext3 md1
раздел) из /etc/fstab
, система отлично загрузится с одним диском, запустив массив RAID1 в деградированном режиме, как я и хотел.
После того, как я выключился и переустановил отсутствующий диск, я снова запустил машину, и она все еще работала только с одним диском. Но я сделал "mdadm --add
"чтобы добавить отсутствующий диск, и его состояние изменилось"spare rebuilding
"на некоторое время, а затем"active
. "
Другими словами, он работает отлично.