Как осуществить резервное копирование системного диска узла кластера vStack?

Данная инструкция предназначена для создания резервной копии системного диска узла (далее — Узел) кластера vStack, которая позволит выполнить восстановление системного диска Узла за короткий промежуток времени в случае аварийной ситуации, повлекшей за собой полную утрату оборудования Узла.

Нам потребуется:

  1. USB memory stick (далее — Носитель) размером не менее 32GB.
  2. Доступ в CLI узла.

Желательно использовать модель Носителя, поддерживающую версию USB не менее 3.0, и подключать её в разъём USB 3.0. В случае невозможности использования USB 3.0 скорость создания резервной копии и восстановления из неё существенно увеличится.

Посредством SSH или системной консоли выполните логин на Узел.

Подключите Носитель к узлу.

Далее необходимо найти в системе блочное устройство, соответствующее Носителю, с помощью следующей команды:

# geom disk list | grep -A 4 -B 6 -i flash
Geom name: da18
Providers:
1. Name: da18
   Mediasize: 30579621888 (28G)
   Sectorsize: 512
   Mode: r0w0e0
   descr: JetFlash Transcend 32GB
   lunname: USB MEMORY BAR
   lunid: 2020030102060804
   ident: CCD5Q638Q8ZAV01N
   rotationrate: unknown

В данном случае блочное устройство в системе называется da18.

Затем проверьте метку диска. Если тип метки не GPT, необходимо удалить существующую метку и создать метку типа GPT:

# gpart show da18
=>      63  59725761  da18  MBR  (28G)
        63       161        - free -  (81K)
       224  59725600     1  fat32lba  [active]  (28G)

В данном случае мы видим, что Носитель имеет метку типа MBR. Удалим все элементы таблицы разделов и саму метку:

# gpart delete -i 1 da18
da18s1 deleted

# gpart destroy da18
da18 destroyed

Теперь создадим метку типа GPT, раздел и файловую систему:

# gpart create -s gpt da18
da18 created

# gpart add -t freebsd-ufs -a 4 da18
da18p1 added

# newfs -t /dev/da18p1
/dev/da18p1: 29163.0MB (59725744 sectors) block size 32768, fragment size 4096
        using 47 cylinder groups of 625.22MB, 20007 blks, 80128 inodes.
super-block backups (for fsck_ffs -b #) at:
 192, 1280640, 2561088, 3841536, 5121984, 6402432, 7682880, 8963328, 10243776, 11524224, 12804672, 14085120, 15365568, 16646016, 17926464, 19206912, 20487360, 21767808, 23048256, 24328704, 25609152, 26889600, 28170048, 29450496, 30730944, 32011392, 33291840, 34572288, 35852736, 37133184, 38413632, 39694080, 40974528, 42254976, 43535424, 44815872, 46096320, 47376768, 48657216, 49937664, 51218112, 52498560, 53779008, 55059456, 56339904, 57620352, 58900800

Примонтируем полученную файловую систему и проверим доступное пространство в ней:

# mount /dev/da18p1 /dumps

# df -hl /dumps
Filesystem     Size    Used   Avail Capacity  Mounted on
/dev/da18p1     28G    8,0K     25G     0%    /dumps

Теперь всё готово к созданию резервной копии, которую мы разместим на Носителе в файле q29u005.20221129.dump:

# chflags -R nodump /var/log/*.log /local /var/cache/pkg

# dump -h 0 -0auf /dumps/q29u005.20221129.dump /
  DUMP: Date of this level 0 dump: Wed Tue 29 10:59:00 2022
  DUMP: Date of last level 0 dump: the epoch
  DUMP: Dumping /dev/gpt/root (/) to /dumps/q29u005.20221129.dump
  DUMP: mapping (Pass I) [regular files]
  DUMP: mapping (Pass II) [directories]
  DUMP: estimated 14241131 tape blocks.
  DUMP: dumping (Pass III) [directories]
  DUMP: dumping (Pass IV) [regular files]
  DUMP: DUMP: 14111218 tape blocks on 1 volume
  DUMP: finished in 250 seconds, throughput 56444 KBytes/sec
  DUMP: level 0 dump on Tue Nov 29 10:59:00 2022
  DUMP: Closing /dumps/q29u005.20221129.dump
  DUMP: DUMP IS DONE

Резервная копия готова. Носитель можно отмонтировать и извлечь:

# umount /dumps