ZFS RAIDZ эмуляция выхода диска из строя

Простые/общие вопросы по UNIX системам. Спросите здесь, если вы новичок

Модераторы: vadim64, terminus

Правила форума
Убедительная просьба юзать теги [cоde] при оформлении листингов.
Сообщения не оформленные должным образом имеют все шансы быть незамеченными.
sudo
мл. сержант
Сообщения: 132
Зарегистрирован: 2011-02-05 10:54:11

ZFS RAIDZ эмуляция выхода диска из строя

Непрочитанное сообщение sudo » 2013-05-06 15:16:35

Есть 3 диска, разбил каждый одинаково gpart'ом

Код: Выделить всё

# gpart create -s GPT ada2
ada2 created
# gpart add -b 34 -s 128 -t freebsd-boot -l disk2 ada2
ada2p1 added
# gpart add -s 4G -t freebsd-swap -l swap2 ada2
ada2p2 added
# gpart add -t freebsd-zfs -l disk2 ada2
ada2p3 added
# gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 ada2
bootcode written to ada2

...

ada0

...

ada1
Собрал RAIDZ, все замечательно

Код: Выделить всё

# zpool status
  pool: zpool
 state: ONLINE
  scan: none requested
config:

        NAME           STATE     READ WRITE CKSUM
        zpool        ONLINE       0     0     0
          raidz1-0     ONLINE       0     0     0
            gpt/disk0  ONLINE       0     0     0
            gpt/disk1  ONLINE       0     0     0
            gpt/disk2  ONLINE       0     0     0

errors: No known data errors
Решил сэмулировать выход из строя одного из дисков

Код: Выделить всё

# zpool offline zpool gpt/disk2
# zpool status
  pool: zfspool
 state: DEGRADED
status: One or more devices has been taken offline by the administrator.
        Sufficient replicas exist for the pool to continue functioning in a
        degraded state.
action: Online the device using 'zpool online' or replace the device with
        'zpool replace'.
  scan: none requested
config:

        NAME                     STATE     READ WRITE CKSUM
        zpool                  DEGRADED     0     0     0
          raidz1-0               DEGRADED     0     0     0
            gpt/disk0            ONLINE       0     0     0
            gpt/disk1            ONLINE       0     0     0
            7984183133786640744  OFFLINE      0     0     0  was /dev/gpt/disk2

errors: No known data errors
Диск ada2 размечаю заново gpart'ом, в точности как и выше. Диски все идентичные, вывод такой:

Код: Выделить всё

# gpart show
=>        34  1953523053  twed0  GPT  (931G)
          34  1953523053      1  freebsd-ufs  (931G)

=>       34  488397101  ada0  GPT  (232G)
         34        128     1  freebsd-boot  (64k)
        162    8388608     2  freebsd-swap  (4.0G)
    8388770  480008365     3  freebsd-zfs  (228G)

=>       34  488397101  ada1  GPT  (232G)
         34        128     1  freebsd-boot  (64k)
        162    8388608     2  freebsd-swap  (4.0G)
    8388770  480008365     3  freebsd-zfs  (228G)

=>      0  7907328  da0  BSD  (3.8G)
        0  1501808    1  freebsd-ufs  (733M)
  1501808  6405520       - free -  (3.1G)

=>       34  488397101  ada2  GPT  (232G)
         34        128     1  freebsd-boot  (64k)
        162    8388608     2  freebsd-swap  (4.0G)
    8388770  480008365     3  freebsd-zfs  (228G)
Пытаюсь выполнить команду

Код: Выделить всё

# zpool replace zpool 7984183133786640744 gpt/disk2
cannot replace /dev/gpt/disk2 with /dev/gpt/disk2: device is too small
device is too small ???

Получается сделать только так

Код: Выделить всё

# zpool replace -f zpool 7984183133786640744 ada2
Make sure to wait until resilver is done before rebooting.

If you boot from pool 'zpool', you may need to update
boot code on newly attached disk 'ada2'.

Assuming you use GPT partitioning and 'da0' is your new boot disk
you may use the following command:

        gpart bootcode -b /boot/pmbr -p /boot/gptzfsboot -i 1 da0
Здесь все понятно, надо загрузчик на диск прописать отдельно, пускай так.

Вывод zpool status теперь такой

Код: Выделить всё

# zpool status
  pool: zpool
 state: ONLINE
  scan: resilvered 35,5G in 0h32m with 0 errors on Wed May  1 11:33:06 2013
config:

        NAME           STATE     READ WRITE CKSUM
        zfspool        ONLINE       0     0     0
          raidz1-0     ONLINE       0     0     0
            gpt/disk0  ONLINE       0     0     0
            gpt/disk1  ONLINE       0     0     0
            ada2       ONLINE       0     0     0

errors: No known data errors


gpart теперь попросту этого диска не видит. Загружаюсь в LiveCD - gpart диск видит. Что делаю не так ? Как восстановить на диске ada2 GPT разделы (еще раз обращаю внимание на выше указанную ошибку device is too small )

При загрузке ругался на отсутствие загрузчика на ada2. В LiveCD восстановил, ругаться перестал вроде.

Код: Выделить всё

# uname -a
FreeBSD server 9.1-RELEASE FreeBSD 9.1-RELEASE #0: Thu Apr 25 08:54:35 UTC 2013     root@server:/usr/obj/usr/src/sys/KERNEL  amd64

Хостинговая компания Host-Food.ru
Хостинг HostFood.ru
 

Услуги хостинговой компании Host-Food.ru

Хостинг HostFood.ru

Тарифы на хостинг в России, от 12 рублей: https://www.host-food.ru/tariffs/hosting/
Тарифы на виртуальные сервера (VPS/VDS/KVM) в РФ, от 189 руб.: https://www.host-food.ru/tariffs/virtualny-server-vps/
Выделенные сервера, Россия, Москва, от 2000 рублей (HP Proliant G5, Intel Xeon E5430 (2.66GHz, Quad-Core, 12Mb), 8Gb RAM, 2x300Gb SAS HDD, P400i, 512Mb, BBU):
https://www.host-food.ru/tariffs/vydelennyi-server-ds/
Недорогие домены в популярных зонах: https://www.host-food.ru/domains/

snorlov
подполковник
Сообщения: 3832
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: ZFS RAIDZ эмуляция выхода диска из строя

Непрочитанное сообщение snorlov » 2013-05-06 15:53:43

После offline'а надо было его удалить...

sudo
мл. сержант
Сообщения: 132
Зарегистрирован: 2011-02-05 10:54:11

Re: ZFS RAIDZ эмуляция выхода диска из строя

Непрочитанное сообщение sudo » 2013-05-06 16:01:06

Физически ?

snorlov
подполковник
Сообщения: 3832
Зарегистрирован: 2008-09-04 11:51:25
Откуда: Санкт-Петербург

Re: ZFS RAIDZ эмуляция выхода диска из строя

Непрочитанное сообщение snorlov » 2013-05-06 16:15:58

sudo писал(а):Физически ?
Зачем же

Код: Выделить всё

zpool remove ...

sudo
мл. сержант
Сообщения: 132
Зарегистрирован: 2011-02-05 10:54:11

Re: ZFS RAIDZ эмуляция выхода диска из строя

Непрочитанное сообщение sudo » 2013-05-06 16:20:31

Да это я все пробовал, и уже как не помню доводил до состояния UNAVAIL, такая же фигня получалась...

Код: Выделить всё

# zpool detach zpool 1457295982957644668
cannot detach 1457295982957644668: only applicable to mirror and replacing vdevs
]# zpool remove zpool 1457295982957644668
cannot remove 1457295982957644668: only inactive hot spares, cache, top-level, or log devices can be removed