среда, 20 марта 2019 г.

Linux восстановление из резервной копии

link
1) загрузиться в resque mode выполнить бэкап. Если boot на отдельной партиции, то бэкап boot тоже нужно сделать
a) tar -cvpzf /path/to/backup.tar.gz --exclude=/path/to/backup.tar.gz --one-file-system /

b) или, быстрее, сразу на удаленную машину 1.2.3.4 Предварительно сгенерив ssh-ключ и записав на машину с бэкапом
tar cf - --one-file-system /mnt/backup/ -P | pv -s $(du -sb /mnt/backup/ | awk '{print $1}') | gzip | ssh -p 2202 user-backup@1.2.3.4 "cat - > /home/user-backup/backup18032019.tar.gz"


запуск от root, поэтому p параметр используется по умолчанию

в pipeline используется интересная утилита pv с помощью которой удобно просматривать процесс копирования. Я запустил сначала

du -sb /mnt/backup/ | awk '{print $1}'

поэтому использовал полученное значение 12345 в pv -s 12345

также, лучше запускать в screen , чтобы не потерять процесс бэкапа в случае обрыва связи, ну и напарник мог подключиться в случае чего
screen -list
There are screens on:
    24896.log (12/20/2018 09:13:32 PM) (Detached)

screen -r root/24896.log

или подключиться к уже активной сессии

screen -x root/24896.log (multi mode)

2) После чего проверил gz файл

gunzip -t backup18032019.tar.gz (около 40 мин при архиве 110G)

загрузился с livecd (reasque mode), смонтировал диск, отформатировал его (ниже описание параметров форматирования, особенно важно для рейд-массива) и залил бэкап на него:
a)  запуск разархивации после копирования (дольше):
tar -xvpzf /path/to/backup.tar.gz -C /media/<mount_point> --numeric-owner

b) или с удаленной машины 1.2.3.4 под root аккаунтом (p - параметр включен по умолчанию). Предварительно сгенерив ssh-ключ и записав на машину с бэкапом
ssh -p 2202 user-backup@1.2.3.4 "cat /home/user-backup/backup18032019.tar.gz" | tar xzf - -C /mnt

В результате структура каталогов будет /mnt/mnt/backup , поэтому нужно перенести файлы:
внутри каталога /mnt команда:
mv mnt/backup/* mnt/backup/.* .

3) Переписал id раздела в fstab, и установил grub:
grub-mkconfig -o /boot/grub/grub.cfg

При форматировании RAID диска нужно также соблюсти выравнивание (partition alignment)
Ссылка для расчета https://busybox.net/~aldot/mkfs_stride.html
Задать параметры при форматировании:

mkfs.ext4 -b 4096 -E stride=64,stripe-width=384 /dev/sda5

Raid10 12 disks (n/2)

chunk size = 256kB
block size = 4kB
stride = chunk / block = 256kB / 4k = 64
stripe-width = stride * ( n/2 disks in raid10 ) = 64 * (12 / 2) = 64 * 6 = 384

Поменять параметры можно с помощью tune2fs

Для проверки: OK - ‘N aligned’ or ‘N not aligned’

parted /dev/sda
GNU Parted 3.2
Using /dev/sda
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) align-check optimal 1
1 aligned
(parted)


А где взял chunk size ?

в моем случае у HP P410 через утилиту hpacucli размер stripe size
hpacucli
=> ctrl slot=1 ld 1 show

Smart Array P410 in Slot 1

   array A

      Logical Drive: 1
         Size: 16.4 TB
         Fault Tolerance: RAID 1+0
         Heads: 255
         Sectors Per Track: 32
         Cylinders: 65535
         Strip Size: 256 KB
         Full Stripe Size: 1536 KB
         Status: OK
         Caching:  Enabled
         Unique Identifier: 600508B10...68ED
         Disk Name: /dev/sda
         Mount Points: /boot 500 MB, / 2.0 TB, /data 14.4 TB
         OS Status: LOCKED
         Logical Drive Label: AC80...13F8
         Mirror Group 0:
            physicaldrive 1I:1:1 (port 1I:box 1:bay 1, SATA, 3 TB, OK)
            physicaldrive 1I:1:2 (port 1I:box 1:bay 2, SATA, 3 TB, OK)
            physicaldrive 1I:1:3 (port 1I:box 1:bay 3, SATA, 3 TB, OK)
            physicaldrive 1I:1:4 (port 1I:box 1:bay 4, SATA, 3 TB, OK)
            physicaldrive 1I:1:5 (port 1I:box 1:bay 5, SATA, 3 TB, OK)
            physicaldrive 1I:1:6 (port 1I:box 1:bay 6, SATA, 3 TB, OK)
         Mirror Group 1:
            physicaldrive 1I:1:7 (port 1I:box 1:bay 7, SATA, 3 TB, OK)
            physicaldrive 1I:1:8 (port 1I:box 1:bay 8, SATA, 3 TB, OK)
            physicaldrive 1I:1:9 (port 1I:box 1:bay 9, SATA, 3 TB, OK)
            physicaldrive 1I:1:10 (port 1I:box 1:bay 10, SATA, 3 TB, OK)
            physicaldrive 1I:1:11 (port 1I:box 1:bay 11, SATA, 3 TB, OK)
            physicaldrive 1I:1:12 (port 1I:box 1:bay 12, SATA, 3 TB, OK)
         Drive Type: Data

4) не забыть за своп

mkswap /dev/sda4
UUID прописать в fstab после этого
swapon /dev/sda4
swapon --list

Комментариев нет:

Отправить комментарий