В этой статье будет описано как происходит замена системного диска, то есть диска на котором находится система и загрузчик, на сервере Proxmox Virtual Environment 8.3, если сервер был установлен на ZFS зеркало.
Введение
Я уже писал статью про установку сервера Proxmox VE на зеркало ZFS — здесь, а в этой статье опишу как происходит замена диска, если это потребуется.
После установки Proxmox VE на зеркало ZFS, в web-интерфейсе вы увидите такую схему разметки диска:
Оба диска: sda и sdb имеют по 3 раздела:
- 1 Раздел (BIOS boot). Это раздел mbr для загрузки с BIOS Legacy.
- 2 Раздел (EFI). Это раздел для загрузки с EFI.
- 3 Раздел (ZFS). Этот раздел с файловой системой ZFS находится в ZFS пуле (в зеркале).
Давайте откроем терминал, и получим информацию по ZFS пулу, и разметкам дисков. Кстати, эту информацию лучше сохранить на будущее в какую-нибудь заметку по серверу.
Посмотрим статус ZFS пула (zpool):
# zpool status pool: rpool state: ONLINE scan: scrub repaired 0B in 00:00:07 with 0 errors on Sun Sep 8 00:24:08 2024 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 ONLINE 0 0 0
Убедимся что раздел scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 это sda3. И scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 это sdb3:
# ls -l /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi*-part3 lrwxrwxrwx 1 root root 10 Dec 20 13:41 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 -> ../../sda3 lrwxrwxrwx 1 root root 10 Dec 20 13:41 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 -> ../../sdb3
Посмотрим на разметку обоих дисков:
# fdisk -l /dev/sda Disk /dev/sda: 32 GiB, 34359738368 bytes, 67108864 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 65789228-2164-40AB-9580-63F10B8EC4E0 Device Start End Sectors Size Type /dev/sda1 34 2047 2014 1007K BIOS boot /dev/sda2 2048 1050623 1048576 512M EFI System /dev/sda3 1050624 67108830 66058207 31.5G Solaris /usr & Apple ZFS # fdisk -l /dev/sdb Disk /dev/sdb: 32 GiB, 34359738368 bytes, 67108864 sectors Disk model: QEMU HARDDISK Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: gpt Disk identifier: 3825FA51-5AD1-4A0D-A746-59503E8C4842 Device Start End Sectors Size Type /dev/sdb1 34 2047 2014 1007K BIOS boot /dev/sdb2 2048 1050623 1048576 512M EFI System /dev/sdb3 1050624 67108830 66058207 31.5G Solaris /usr & Apple ZFS
Замена диска
Итак, вынимаем 1 диск, после чего ломается ZFS массив, то есть zpool переходит в состояние DEGRADED:
# zpool status pool: rpool state: DEGRADED status: One or more devices has been removed 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: scrub repaired 0B in 00:00:07 with 0 errors on Sun Sep 8 00:24:08 2024 config: NAME STATE READ WRITE CKSUM rpool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 REMOVED 0 0 0
Затем вставляем новый диск и видим что в системе появился новый пустой диск sdb:
# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 32G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part └─sda3 8:3 0 31.5G 0 part sdb 8:16 0 32G 0 disk
Копируем таблицу разделов с размеченного диска на новый:
# sfdisk --dump /dev/sda | sfdisk /dev/sdb # lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS sda 8:0 0 32G 0 disk ├─sda1 8:1 0 1007K 0 part ├─sda2 8:2 0 512M 0 part └─sda3 8:3 0 31.5G 0 part sdb 8:16 0 32G 0 disk ├─sdb1 8:17 0 1007K 0 part ├─sdb2 8:18 0 512M 0 part └─sdb3 8:19 0 31.5G 0 part
Устанавливаем загрузчик на новый диск, для этого используем специальный инструмент от proxmox — proxmox-boot-tool:
# proxmox-boot-tool format /dev/sdb2 # proxmox-boot-tool init /dev/sdb2 # proxmox-boot-tool refresh
Заменяем диск в rpool:
# zpool replace rpool /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi1-part3 /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi2-part3
Проверяем rpool:
# zpool status pool: rpool state: ONLINE scan: resilvered 3.47G in 00:00:13 with 0 errors on Fri Dec 20 14:56:24 2024 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2-part3 ONLINE 0 0 0
Тестирование
Пробуем перезагрузить сервер с двумя дисками. После перезагрузки ещё раз посмотрим zpool status:
# zpool status pool: rpool state: ONLINE scan: resilvered 8.02M in 00:00:00 with 0 errors on Fri Dec 20 15:28:26 2024 config: NAME STATE READ WRITE CKSUM rpool ONLINE 0 0 0 mirror-0 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 ONLINE 0 0 0 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2-part3 ONLINE 0 0 0
Вынимаем старый диск и ещё раз перезагружаемся с 1 новым диском. Получилось! Вот статус zpool после перезагрузки:
# zpool status 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: https://openzfs.github.io/openzfs-docs/msg/ZFS-8000-4J scan: resilvered 3.47G in 00:00:13 with 0 errors on Fri Dec 20 14:56:24 2024 config: NAME STATE READ WRITE CKSUM rpool DEGRADED 0 0 0 mirror-0 DEGRADED 0 0 0 515864871608353605 UNAVAIL 0 0 0 was /dev/disk/by-id/scsi-0QEMU_QEMU_HARDDISK_drive-scsi0-part3 scsi-0QEMU_QEMU_HARDDISK_drive-scsi2-part3 ONLINE 0 0 0
Если понравилась статья, подпишись на мой канал в VK.
Спасибо.