The OpenNET Project / Index page

[ новости /+++ | форум | теги | ]

Использованеи gmirror для создания программного зеркалирования дисков (gmirror raid disk)


<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>
Ключевые слова: gmirror, raid, disk,  (найти похожие документы)
From: Алексей Кеда (lissyara) <admin@lissyara.su.> Date: Mon, 23 Nov 2007 18:21:07 +0000 (UTC) Subject: Использованеи gmirror для создания программного зеркалирования дисков Оригинал: http://www.lissyara.su/?id=1272 Досталась мамка с кривым S-ATA контроллером - SiL3112. До того, как выяснилось что он кривой, успел заказать два S-ATA харда :). Поколупавшись день, понял, что на ней ниего не светит, и взял со склада два P-ATA. Тока вот RAID-контроллер на маме был лишь новомоднявого формата Serail ATA. Поэтому, ввиду того, что машина ответственная, решил сделать зеркало софтверное. Вначале, хотел забульбенить по-старинке, через atacontrol, но после некоторого размышления, решил что лучше мутить на gmirror. Основной причиной стало то, что за зеркалом на atacontrol надо присматирвать больше, чем на gmirror. Ненамного, но больше. Итак, для начала добавляем строку в /boot/loader.conf /usr/home/lissyara/>echo 'geom_mirror_load=YES' >> /boot/loader.conf /usr/home/lissyara/> После чего создаём зеркало: /usr/home/lissyara/>gmirror label -v -b round-robin gm0 /dev/ad0 Can't store metadata on /dev/ad0: Operation not permitted. /usr/home/lissyara/> Не даёт писать на диск который используется. Правиться при помощи sysctl: /usr/home/lissyara/>sysctl kern.geom.debugflags=16 kern.geom.debugflags: 0 -> 16 /usr/home/lissyara/> Снова пробуем: /usr/home/lissyara/>gmirror label -v -b round-robin gm0 /dev/ad0 Metadata value stored on /dev/ad0. Done. /usr/home/lissyara/> Сделали зеркало из одного диска. Надо добавить второй, но вначале правим /etc/fstab из такого: # Device Mountpoint FStype Options Dump Pass# /dev/ad0s2b none swap sw 0 0 /dev/ad0s1a / ufs rw 1 1 /dev/ad0s1e /jails/eliron ufs rw 2 2 /dev/ad0s1f /jails/gptel ufs rw 2 2 /dev/ad0s1g /jails/grand-prix ufs rw 2 2 /dev/ad0s1d /tmp ufs rw 2 2 /dev/ad0s1h /usr ufs rw 2 2 /dev/ad0s1b /var ufs rw 2 2 /dev/acd0 /cdrom cd9660 ro,noauto 0 0 # NULLFS - for ports /usr/ports /jails/eliron/usr/ports nullfs rw 0 0 #/usr/ports /jails/gptel/usr/ports nullfs rw 0 0 #/usr/ports /jails/grand-prix/usr/ports nullfs rw 0 0 В такой (это просто пример, что должно меняться, а что не должно, хотя и взят он с реальной машины) /usr/home/lissyara/>df -h Filesystem Size Used Avail Capacity Mounted on /dev/mirror/gm0s1a 372M 60M 282M 18% / devfs 1.0K 1.0K 0B 100% /dev /dev/mirror/gm0s1e 1.9G 363M 1.4G 20% /jails/eliron /dev/mirror/gm0s1f 1.9G 4.0K 1.8G 0% /jails/gptel /dev/mirror/gm0s1g 1.9G 4.0K 1.8G 0% /jails/grand-prix /dev/mirror/gm0s1d 1.9G 14K 1.8G 0% /tmp /dev/mirror/gm0s1h 271G 6.0G 243G 2% /usr /dev/mirror/gm0s1b 9.3G 34M 8.5G 0% /var /usr/ports 271G 6.0G 243G 2% /jails/eliron/usr/ports devfs 1.0K 1.0K 0B 100% /var/named/dev devfs 1.0K 1.0K 0B 100% /jails/eliron/dev procfs 4.0K 4.0K 0B 100% /jails/eliron/proc /usr/home/lissyara/> После чего перезагружаемся. Если всё нормально, и ошибок нет, то надо втыкать второй хард в зеркало. Если ошибки, и не грузится, то монтируем корневую ФС руками, и исправляем ошибки в /etc/fstab. Итак, втыкаем второй хард в зеркало: /usr/home/lissyara/>gmirror insert gm0 /dev/ad1 /usr/home/lissyara/> Смотрим логи: /usr/home/lissyara/>tail -2 /var/log/messages Nov 2 11:04:00 router kernel: GEOM_MIRROR: Device gm0: provider ad1 detected. Nov 2 11:04:00 router kernel: GEOM_MIRROR: Device gm0: rebuilding provider ad1 . /usr/home/lissyara/> И статус массива: /usr/home/lissyara/>gmirror status Name Status Components mirror/gm0 DEGRADED ad0 ad1 (1%) /usr/home/lissyara/> Полные данные можно получить такой командой: /usr/home/lissyara/>gmirror list Geom name: gm0 State: DEGRADED Components: 2 Balance: round-robin Slice: 4096 Flags: NONE GenID: 0 SyncID: 1 ID: 875211574 Providers: 1. Name: mirror/gm0 Mediasize: 320072932864 (298G) Sectorsize: 512 Mode: r9w8e10 Consumers: 1. Name: ad0 Mediasize: 320072933376 (298G) Sectorsize: 512 Mode: r1w1e1 State: ACTIVE Priority: 0 Flags: DIRTY GenID: 0 SyncID: 1 ID: 4187229399 2. Name: ad1 Mediasize: 320072933376 (298G) Sectorsize: 512 Mode: r1w1e1 State: SYNCHRONIZING Priority: 0 Flags: DIRTY, SYNCHRONIZING GenID: 0 SyncID: 1 Synchronized: 1% ID: 2887372520 /usr/home/lissyara/> А влогах ядра такое: /usr/home/lissyara/>dmesg | grep GEOM_MIRROR GEOM_MIRROR: Device gm0 created (id=875211574). GEOM_MIRROR: Device gm0: provider ad0 detected. GEOM_MIRROR: Device gm0: provider ad0 activated. GEOM_MIRROR: Device gm0: provider mirror/gm0 launched. GEOM_MIRROR: Device gm0: provider ad1 detected. GEOM_MIRROR: Device gm0: rebuilding provider ad1. /usr/home/lissyara/> После сборки будет так: /usr/home/lissyara/>gmirror status Name Status Components mirror/gm0 COMPLETE ad0 ad1 /usr/home/lissyara/> Это описание не претендует на полноту, или ещё что-то, делалось оно по горячим следам, в процессе работы. Может кому и пригодится.

<< Предыдущая ИНДЕКС Исправить src / Печать Следующая >>

Обсуждение [ RSS ]
  • 1, Leo (??), 15:37, 28/11/2007 [ответить]  
  • +/
    Тему поднимали не раз.
    Тут описание совсем не самое удачное.
    Один из моментов - слайсы. Про которые ничего вообще не сказано, при том, что правильнее миррорить именно их, а не весь диск.
     
  • 2, leon55 (?), 17:15, 29/02/2008 [ответить]  
  • +/
    Завелось :).
    Лиссяре в очередной раз сенкс :)
     

     Добавить комментарий
    Имя:
    E-Mail:
    Заголовок:
    Текст:




    Партнёры:
    PostgresPro
    Inferno Solutions
    Hosting by Hoster.ru
    Хостинг:

    Закладки на сайте
    Проследить за страницей
    Created 1996-2024 by Maxim Chirkov
    Добавить, Поддержать, Вебмастеру