Proxmox VEВиртуализация

Замена диска в ZFS пуле – Proxmox 4.2

Приветствую всех в данном блоге. Я сегодня расскажу, как заменить диск в ZFS! 
На данный момент имеется сервер, на котором установлен PROXMOX 4 на 4 диска, два из которых SSD. Дак вот решил заменить SSD — диски на обычные винты.

Приступим!

Вот так выглядит ZFS poll после установки Proxmox:

root@PVE-S60:~# zpool status rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 137G in 1h18m with 0 errors on Sun Jun 26 23:04:21 2016
config:
        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda2    ONLINE       0     0     0
            sdb2    ONLINE       0     0     0
            sdc2    ONLINE       0     0     0
            sdd2    ONLINE       0     0     0
errors: No known data errors

Давайте попробуем заменить один из дисков. Выключаем сервер (если у вас нет возможности горячей замены дисков, а так все ниже описанное можно проделать, не останавливая сервер – если есть контроллер и hotswap) 
В моем случае я выключаю сервак 

 root@PVE-S60:~# poweroff 

Вытаскиваем тот диск который нужно заменить.

Вставляю новый диск в тот же слот и включаю сервер.

Смотрим!


root@PVE-S60:~# zpool status rpool
  pool: rpool
 state: DEGRADED
status: One or more devices could not be used because the label is missing or
        invalid.  Sufficient replicas exist for the pool to continue
        functioning in a degraded state.
action: Replace the device using 'zpool replace'.
   see: http://zfsonlinux.org/msg/ZFS-8000-4J
  scan: resilvered 137G in 1h18m with 0 errors on Sun Jun 26 23:04:21 2016
config:

        NAME                     STATE     READ WRITE CKSUM
        rpool                    DEGRADED     0     0     0
          raidz2-0               DEGRADED     0     0     0
            1944940033163241752  UNAVAIL      0     0     0  was /dev/sda2
            sdb2                 ONLINE       0     0     0
            sdc2                 ONLINE       0     0     0
            sdd2                 ONLINE       0     0     0

errors: No known data errors

Наш диск потерялся.

Если вернуть извлеченный диск на место — он прекрасно «встает» обратно в зеркало: 


root@PVE-S60:~# zpool status rpool
  pool: rpool
 state: ONLINE
  scan: resilvered 137G in 1h18m with 0 errors on Sun Jun 26 23:04:21 2016
config:
        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda2    ONLINE       0     0     3
            sdb2    ONLINE       0     0     0
            sdc2    ONLINE       0     0     0
            sdd2    ONLINE       0     0     0
errors: No known data errors

Но мы вместо старого диска вставили новый.

Условно неисправный диск у нас /dev/sda и учитывая одинаковую емкость и геометрию копируем таблицу разделов 1:1 с исправного диска /dev/sdb

root@pve1:~# sgdisk -R /dev/sda /dev/sdb
The operation has completed successfully.

Генерируем уникальные UUID для /dev/sda

root@pve1:~# sgdisk -G /dev/sda
The operation has completed successfully.

Ставим загрузчик на замененный диск и обновляем GRUB:

root@pve1:~# grub-install --recheck /dev/sda
Installing for i386-pc platform.
Installation finished. No error reported.

###############################################
# или такую инфу выдаст                       #
# grub-install: error: unknown filesystem.    #
# продолжаем дальше                           #
###############################################

root@pve1:~# update-grub
Generating grub configuration file ...
Found linux image: /boot/vmlinuz-4.2.3-2-pve
Found initrd image: /boot/initrd.img-4.2.3-2-pve
Found linux image: /boot/vmlinuz-4.2.2-1-pve
Found initrd image: /boot/initrd.img-4.2.2-1-pve
Found memtest86+ image: /ROOT/pve-1@/boot/memtest86+.bin
Found memtest86+ multiboot image: /ROOT/pve-1@/boot/memtest86+_multiboot.bin
done
root@pve1:~# update-initramfs -u
update-initramfs: Generating /boot/initrd.img-4.2.3-2-pve

Осталось только заменить сбойный диск в массиве на свежеустановленный. 

root@pve1:~# zpool replace rpool /dev/sda2
Make sure to wait until resilver is done before rebooting.

Если на диске уже есть какая нибуть файловая система то надо применить команду
Используйте ключ -f, чтобы удалить хранилище с существующими файловыми файловыми системами.:

root@pve1:~# zpool replace -f rpool /dev/sda2
Make sure to wait until resilver is done before rebooting.

Нас предупредили о необходимости дождаться окончания синхронизации прежде чем перезагружаться. Проверим статус массива:

root@PVE-S60:~# zpool status -v
  pool: rpool
 state: DEGRADED
status: One or more devices is currently being resilvered.  The pool will
        continue to function, possibly in a degraded state.
action: Wait for the resilver to complete.
  scan: resilver in progress since Mon Jun 27 01:41:21 2016
    36.6G scanned out of 661G at 87.0M/s, 2h2m to go
    6.16G resilvered, 5.54% done
config:

        NAME                       STATE     READ WRITE CKSUM
        rpool                      DEGRADED     0     0     0
          raidz2-0                 DEGRADED     0     0     0
            replacing-0            UNAVAIL      0     0     0
              1944940033163241752  UNAVAIL      0     0     0  was /dev/sda2/old
              sda2                 ONLINE       0     0     0  (resilvering)
            sdb2                   ONLINE       0     0     0
            sdc2                   ONLINE       0     0     0
            sdd2                   ONLINE       0     0     0

errors: No known data errors

Ждем окончания синхронизации массива.

root@PVE-S60:~# zpool status -v
  pool: rpool
 state: ONLINE
  scan: resilvered 137G in 1h34m with 0 errors on Mon Jun 27 03:15:38 2016
config:

        NAME        STATE     READ WRITE CKSUM
        rpool       ONLINE       0     0     0
          raidz2-0  ONLINE       0     0     0
            sda2    ONLINE       0     0     0
            sdb2    ONLINE       0     0     0
            sdc2    ONLINE       0     0     0
            sdd2    ONLINE       0     0     0

errors: No known data errors

Вот и все мы заменили диск в массиве. Наш rpool полностью синхронизирован и готов к труду и обороне…

0

Автор публикации

не в сети 2 года

Илья Коковин

Аватар 0
Комментарии: 0Публикации: 34Регистрация: 30-05-2019

Добавить комментарий

Ваш адрес email не будет опубликован.

Авторизация
*
*
Регистрация
*
*
*
Пароль не введен
*
Генерация пароля