Как всегда, все обнаруживается в пятницу и причем под конец рабочего дня. Вот к примеру, заметил, что мои виртуальные машины на моем физическом сервере ((Supermicro SYS-5019S-M: Debian 10 + Proxmox 6, ZFS разделы, 64Gb оперативной памяти (2 модуля 378A4G43MB1-CTD)), на нем установлена связка Debian 10 + Proxmox 6.4-13 (running kernel: 5.4.166-1-pve) стали как-то тормозить. Используемые диски:

  • HDD 1 (/dev/sda): Samsung SSD 870 EVO 500GB (под систему)
  • HDD 2 (/dev/sdb): диск на 4Tb в пуле ZFS mirror (для VM)
  • HDD 3 (/dev/sdc): диск на 4Tb в пуле ZFS mirror (для VM)
  • HDD 4 (/dev/sdd): диск на 3Tb под бекап /backup
  • M2 (/dev/nvme0n1) диск под виртуалки

На заметку: опираясь на заметку "Внедряю ZFS для моего сервера Gigabyte C246 WU4" диски /dev/sdb & /dev/sdc у меня настроены.

Т.е. три storage под виртуальные машины.

А тормозить стало все, при действиях внутри виртуальных систем, при создании бекапов.

Решил проанализировать, что это способствует, сперва решил, что может это его пытаются взломать через панель, авторизации которая смотрит в интернет через Nginx + Proxy (в локальную сеть). Приступил к анализу логов и увидел, что у меня диск /dev/sda — этот тот самый что Samsung SSD 870 EVO 500Gb

root@srv-proxmox2:~# cat /var/log/daemon.log | more
Mar 26 00:19:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], FAILED SMART self-check. BACK UP DATA NOW!
Mar 26 00:19:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], Failed SMART usage Attribute: 5 Reallocated_Sector_Ct.
Mar 26 00:19:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], Failed SMART usage Attribute: 179 Used_Rsvd_Blk_Cnt_Tot.
Mar 26 00:19:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], Failed SMART usage Attribute: 183 Runtime_Bad_Block.
Mar 26 00:19:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], SMART Usage Attribute: 190 Airflow_Temperature_Cel changed from 70 to 71
Mar 26 00:20:00 srv-proxmox2 systemd[1]: Starting Proxmox VE replication runner...
Mar 26 00:20:00 srv-proxmox2 systemd[1]: pvesr.service: Succeeded.

Не знаю верить или нет, но по логам диску стало плохо еще 26.03.2023, сейчас 31.03.2023

root@srv-proxmox2:~# cat /var/log/daemon.log | grep 'FAILED SMART' | head -n 1
Mar 26 00:19:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], FAILED SMART self-check. BACK UP DATA NOW!
root@srv-proxmox2:~#

не факт конечно может лог перезатирается

Если посмотреть по всех заархивированным файлам, то уже от 20.03.2023 начались данные сообщения, до этого возможно логи перезатирались.

root@srv-proxmox2:~# zcat -f /var/log/daemon.log.* | grep 'FAILED SMART' | head -n1
Mar 20 13:49:10 srv-proxmox2 smartd[1984]: Device: /dev/sda [SAT], FAILED SMART self-check. BACK UP DATA NOW!
root@srv-proxmox2:~#

Тут я для себя поставил задачу, разобрать как поставить в домашний мониторинг за домашней инфраструктурой. Об этом сделаю заметку чуть позже.

Смотрю информацию по проблемному диску:

root@srv-proxmox2:~# smartctl -i /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.4.166-1-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org
=== START OF INFORMATION SECTION ===
Device Model:     Samsung SSD 870 EVO 500GB
Serial Number:    S5Y1NF0R403791V
LU WWN Device Id: 5 002538 f4140457f
Firmware Version: SVT01B6Q
User Capacity:    500,107,862,016 bytes [500 GB]
Sector Size:      512 bytes logical/physical
Rotation Rate:    Solid State Device
Form Factor:      2.5 inches
TRIM Command:     Available, deterministic, zeroed
Device is:        Not in smartctl database [for details use: -P showall]
ATA Version is:   ACS-4 T13/BSR INCITS 529 revision 5
SATA Version is:  SATA 3.3, 6.0 Gb/s (current: 6.0 Gb/s)
Local Time is:    Fri Mar 31 15:20:04 2023 MSK
SMART support is: Available - device has SMART capability.
SMART support is: Enabled
root@srv-proxmox2:~# smartctl -A /dev/sda
smartctl 7.2 2020-12-30 r5155 [x86_64-linux-5.4.166-1-pve] (local build)
Copyright (C) 2002-20, Bruce Allen, Christian Franke, www.smartmontools.org

=== START OF READ SMART DATA SECTION ===
SMART Attributes Data Structure revision number: 1
Vendor Specific SMART Attributes with Thresholds:
ID# ATTRIBUTE_NAME          FLAG     VALUE WORST THRESH TYPE      UPDATED  WHEN_FAILED RAW_VALUE
  5 Reallocated_Sector_Ct   0x0033   002   002   010    Pre-fail  Always   FAILING_NOW 542
  9 Power_On_Hours          0x0032   097   097   000    Old_age   Always       -       14013
 12 Power_Cycle_Count       0x0032   099   099   000    Old_age   Always       -       56
177 Wear_Leveling_Count     0x0013   099   099   000    Pre-fail  Always       -       7
179 Used_Rsvd_Blk_Cnt_Tot   0x0013   002   002   010    Pre-fail  Always   FAILING_NOW 542
181 Program_Fail_Cnt_Total  0x0032   100   100   010    Old_age   Always       -       0
182 Erase_Fail_Count_Total  0x0032   100   100   010    Old_age   Always       -       0
183 Runtime_Bad_Block       0x0013   002   002   010    Pre-fail  Always   FAILING_NOW 542
187 Reported_Uncorrect      0x0032   099   099   000    Old_age   Always       -       189
190 Airflow_Temperature_Cel 0x0032   071   060   000    Old_age   Always       -       29
195 Hardware_ECC_Recovered  0x001a   199   199   000    Old_age   Always       -       189
199 UDMA_CRC_Error_Count    0x003e   099   099   000    Old_age   Always       -       2
235 Unknown_Attribute       0x0012   099   099   000    Old_age   Always       -       35
241 Total_LBAs_Written      0x0032   099   099   000    Old_age   Always       -       5989240817
root@srv-proxmox2:~#

Посмотрев через Web-интерфейс и тут также статус SMART по диску, а вот сюда я как-раз и особо и не заглядываю, а зря:

https://IP&DNS:8006 - user&pass - (Server View) Datacenter - srv-proxmox2 - Disks

Через Web-интерфейс Proxmox вижу что диску плохо

Делаю по-быстрому бекапы важных машин на диск в 3Tb, через переход в виртуальную машину, к примеру:

https://IP&DNS:8006 - user&pass - (Server View) Datacenter - srv-proxmox2 - VM: 109 (srv-asterisk) - Backup - Backup now

  • Storage: backup (это диск тот что на 3Tb)
  • Mode: Stop
  • Compression: ZSTD (fast and good)

и нажимаю Backup, те системы что под Ubuntu и размеров от 50Gb до 70Gb сделались быстро, а вот система на 600Gb, сжалась до 390Gb где-то за 4 часа, ну вообщем бекап всех важных VM где-то 1Tb

Вот, наверное, поэтому у меня бекап виртуальных машин по части write

Бекап виртуальных машин делается долго

После принял решение скопировать их на всякий случай на другой сервер (srv-proxmox) посредством SSH

root@srv-proxmox2:~# scp /backup/dump/vzdump-qemu-206-2023_03_31-16_02_53.vma.zst root@172.33.33.25:/backup/dump
The authenticity of host '172.33.33.25 (172.33.33.25)' can't be established.
ECDSA key fingerprint is SHA256:dqCxxUDe1xEf50bkOqNQevX1urvh0mvpAnPI7TPKyIE.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added '172.33.33.25' (ECDSA) to the list of known hosts.
root@172.33.33.25's password:
vzdump-qemu-206-2023_03_31-16_02_53.vma.zst                                                                                                  100% 1850MB  24.5MB/s   01:15
root@srv-proxmox2:~#

На заметку: Пропускная способность сети 1G, что конечно мало. И это тоже был описано в документе по модернизации моей инфраструктуры. Прорабатываю переход на 10G дома, я уже дорос до этого момента.

Но ничего за ночь все скопировалось.

Выключаю VM на srv-proxmox2 и через backup диск сервера srv-proxmox штатными средствами Proxmox восстанавливаю VM, и они начинают работать, только перед этим нужно было проверить что на сетевой порт сервера от Mikrotik подаются все нужные VLAN. Это сделано, т.к. я придерживаюсь шаблона настройки, чтобы все сервера дома были по единому стандарту настроены:

  • На сетевой порт подаю тегированный трафик нужных VLAN
  • HDD 1: под систему
  • HDD 2: бекапный диск
  • HDD 3: под виртуальные машины (иногда RAID программный)

Виртуальные машины созданы, как:

Если Ubuntu система:

  • Type: Linux
  • Version: 6.x - 2.6 Kernel
  • Graphic card: Default
  • Machine: Default (i440fx)
  • Bios: Default (SeaBIOS)
  • SCSI Controller: VirtIO SCSI Single
  • Qemu Agent: отмечаю галочку после в систему устанавливаю qemu-guest-agent
  • Bus/Device: VirtIO Block/0
  • Disk size (GiB): указываю размер
  • Storage: выбираю где расположить данные виртуальной машины
  • Cache: Default (No cache)
  • Async IO: Default (io_uring) Нужно почитать по параметры
  • Type: Default (kvm64)
  • Ballooning Device: Отмечаю галочкой
  • Bridge: vmbr0
  • Model: VirtIO (paravirtualized)
  • VLAN Tag: по мере необходимости

и по аналогии для Windows системы, только изменяю параметр Version

и планы по бекапированию/восстановлению.

Ну а теперь, когда виртуальные машины работают на другом сервере, приступаю к замене диска и замены системы, выключив srv-proxmox2, вытащив диск HDD 1, меняю его на свободный: Samsung SSD 870 EVO 250GB

Но в этот раз установку proxmox произведу не как сперва устанавливаю Debian 10, а потом устанавливаю пакеты Proxmox, а попробую развернуть, используя образ: proxmox-ve_7.4-1.iso, копирую его на Zalman VE500 и произвожу установку, подцепляю диски, которые сейчас в сервере и вижу на диске /backup резервные копии виртуальных машин, выключаю машины на srv-proxmox1 и восстанавливаю их, и они снова в строю. Данные на виртуальных машинах по части статичны: PXE-сервер, OwnCloud, iRedMail, Mercurial, Samba, Asterisk и т.д.

Итого. Действительно вылетел диск.

  • Сделал бекап всех нужных VM на каталог /backup - это у меня диск 3Tb
  • После скопировал каждую VM на 172.33.33.25
  • Восстановить из бекапа каждую VM на 172.33.33.25
  • Проверил что VM работает - да работает.
  • После выключил на 172.35.35.102 все VM и переименовал их как VM: IDNoRUN
  • Выключил хост на 172.35.35.102
  • Вытащил первый диск тот что на 500Gb, на его место поставил на 250Gb SSD Samsung
  • подключил Zalman с образом Proxmox 7
  • произвел установку Proxmox из образа на диск 500Gb
  • Заменил содержимое /etc/network/interfaces из бекапного файла: tips_debian_10_proxmox_6_4_13_networking_31_03_2023_v1.txt
  • Выполнил
    • systemctl restart networking
    • systemctl restart pveproxy
  • Погасил VM на 172.33.33.25
  • Подключил все диски в сервере 172.35.35.102
  • Восстановил из /backup диска все забекапленные виртуальные машины

и все завелось как ни в чем не бывало.

По сути можно было и не копировать их на другой сервер 172.33.33.25.

Итого вот такое хорошее время пре провождения у меня выдалось с пятницы на субботу, но это было занимательно и главное, что теперь есть что поменять и адаптировать.

На этом у меня все, с уважением автор блога Олло Александр aka ekzorchik.