Замена диска в 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 полностью синхронизирован и готов к труду и обороне...

Источник: http://ctrl-f.ru (368 переходов)

Файлы статьи:

Похожие статьи

  • Мониторинг онлайн ZFS Запись/Чтение
    Мониторинг онлайн ZFS Запись/Чтение

    zpool iostat -v 1
  • Как сделать образ системы Windows для запуска на виртуальной машине Proxmox VE
    Disk2vhd v2.01
  • Шпаргалка по ZFS
    Очень полезная таблица, жаль, что не попала мне раньше.

    В данной таблице представленный все основные команды по ZFS. Очень помогла в понимании что такое ZFS. Советую всем забрать себе в закладки.!!!

  • Бесплатный кластер (Proxmox + Nexenta)
    Наверное многие из нас, решая задачу организации небольшой IT-инфраструктуры, сталкивались с проблемой выбора гипервизора. Каким функционалом должен обладать софт и сколько за это стоит платить? А будет ли та, или иная часть решения совместима с тем, что уже есть?
    И как бы, всё это погонять на стенде, чтобы убедиться в правильности выбора?
    С учетом курса одной, всем известной валюты, хочется чего-то простого, без излишеств и, по возможности, бесплатного. Тем более, когда речь идет о малой или средней компании (стартапе), ограниченной в бюджете.

0 комментариев
Только зарегистрированные и авторизованные пользователи могут оставлять комментарии.