Итак, необходимо создать резервную копию гостевой ОС (в нашем случае win2003).
1. Создаем "снепшот" логического тома LVM.
2. Копируем весь раздел в файл (на лету сжимаем) - без остановки гостевой ОС.
3. Удаляем снепшот.
4. В случае краха гостевой ОС - останавливаем виртуальный домен. Восстанавливаем раздел из файла, содержащего "снимок" раздела. Запускаем виртуальный домен.
А теперь детали:
1. Создаем "снепшот" логического тома LVM.
root@host-system:~# lvdisplay
File descriptor 7 left open
--- Logical volume ---
LV Name /dev/vg/lv1
VG Name vg
LV UUID MOQz2A-cvrL-pJzT-63yU-ltRQ-rLjW-t6ok3V
LV Write Access read/write
LV Status available
# open 2
LV Size 100.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
root@host-system:~# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 602 4 r----- 374304.9
win2003 104 2048 2 -b---- 2844.4
Для "снепшота" необходимо выделить дисковое пространство, достаточное для сохранения изменений, произошедших в промежуток времени между моментом создания "снепшота" и моментом, когда закончится копирование "снимка" в файл. Считается что 10% от размера логического тома должно быть достаточно.
root@host-system:~# lvcreate --size 10G --snapshot --name win2003-snap /dev/vg/lv1
--- Logical volume ---
LV Name /dev/vg/win2003-snap
VG Name vg
LV UUID fP1eTL-vMAQ-AXBC-LDBj-BDad-gvyV-deU9fY
LV Write Access read/write
LV snapshot status active destination for /dev/vg/lv1
LV Status available
# open 0
LV Size 100.00 GB
Current LE 7680
COW-table size 10.00 GB
COW-table LE 2560
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
2. Копируем весь раздел в файл (на лету сжимаем)
root@host-system:~# dd if=/dev/vg/lv1 bs=1024000 | gzip -cf > /mnt/backup-storage/win2003.gz
Сжимается весьма неплохо - 100 GB LVM - раздел (гостевая ОС занимала около 7 GB) поместился в файл размером 5.3 GB
3. Удаляем снепшот
Снепшот больше не нужен - удалим его:
root@host-system:~# lvremove /dev/vg/win2003-snap
root@host-system:~# lvdisplay
File descriptor 7 left open
--- Logical volume ---
LV Name /dev/vg/lv1
VG Name vg
LV UUID MOQz2A-cvrL-pJzT-63yU-ltRQ-rLjW-t6ok3V
LV Write Access read/write
LV Status available
# open 2
LV Size 100.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
4. Восстановление
В случае краха гостевой ОС остановим виртуальный домен:
root@host-system:~# xm shutdown win2003
root@host-system:~# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 602 4 r----- 374304.9
Восстановим раздел из файла, содержащего резервную копию:
Стартуем виртуальный домен:
root@host-system:~# xm create /etc/xen/config/win2003
root@host-system:~# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 602 4 r----- 374304.9
win2003 104 2048 2 -b---- 2844.4
P.S.
Рисунок 1. Исходная схема раскладки LVM XEN DomU
Мы хотим создавать резервные копии не останавливая гостевую систему. Для этого воспользуемся механизмом "снепшотов".
Алгоритм:"Снепшот" - это такой тип lvm - устройства, который представляет собой доступную только на чтение копию другого тома на момент выполнения процедуры "снепшот". Это дает возможность продолжать работу не заботясь о том, что данные могут измениться в момент резервного копирования. Кроме того, нам не нужно останавливать работу гостевой системы на время выполнения резервного копирования.
1. Создаем "снепшот" логического тома LVM.
2. Копируем весь раздел в файл (на лету сжимаем) - без остановки гостевой ОС.
3. Удаляем снепшот.
4. В случае краха гостевой ОС - останавливаем виртуальный домен. Восстанавливаем раздел из файла, содержащего "снимок" раздела. Запускаем виртуальный домен.
А теперь детали:
1. Создаем "снепшот" логического тома LVM.
root@host-system:~# lvdisplay
File descriptor 7 left open
--- Logical volume ---
LV Name /dev/vg/lv1
VG Name vg
LV UUID MOQz2A-cvrL-pJzT-63yU-ltRQ-rLjW-t6ok3V
LV Write Access read/write
LV Status available
# open 2
LV Size 100.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
root@host-system:~# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 602 4 r----- 374304.9
win2003 104 2048 2 -b---- 2844.4
Для "снепшота" необходимо выделить дисковое пространство, достаточное для сохранения изменений, произошедших в промежуток времени между моментом создания "снепшота" и моментом, когда закончится копирование "снимка" в файл. Считается что 10% от размера логического тома должно быть достаточно.
root@host-system:~# lvcreate --size 10G --snapshot --name win2003-snap /dev/vg/lv1
root@host-system:~# lvdisplay
File descriptor 7 left open
--- Logical volume ---
LV Name /dev/vg/lv1
VG Name vg
LV UUID MOQz2A-cvrL-pJzT-63yU-ltRQ-rLjW-t6ok3V
LV Write Access read/write
LV snapshot status source of
/dev/vg/win2003-snap [active]
LV Status available
# open 2
LV Size 30.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
File descriptor 7 left open
--- Logical volume ---
LV Name /dev/vg/lv1
VG Name vg
LV UUID MOQz2A-cvrL-pJzT-63yU-ltRQ-rLjW-t6ok3V
LV Write Access read/write
LV snapshot status source of
/dev/vg/win2003-snap [active]
LV Status available
# open 2
LV Size 30.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
LV Name /dev/vg/win2003-snap
VG Name vg
LV UUID fP1eTL-vMAQ-AXBC-LDBj-BDad-gvyV-deU9fY
LV Write Access read/write
LV snapshot status active destination for /dev/vg/lv1
LV Status available
# open 0
LV Size 100.00 GB
Current LE 7680
COW-table size 10.00 GB
COW-table LE 2560
Allocated to snapshot 0.00%
Snapshot chunk size 4.00 KB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:4
Рисунок 2. Раскладка LVM XEN DomU после создания "снепшота"
2. Копируем весь раздел в файл (на лету сжимаем)
root@host-system:~# dd if=/dev/vg/lv1 bs=1024000 | gzip -cf > /mnt/backup-storage/win2003.gz
Сжимается весьма неплохо - 100 GB LVM - раздел (гостевая ОС занимала около 7 GB) поместился в файл размером 5.3 GB
3. Удаляем снепшот
Снепшот больше не нужен - удалим его:
root@host-system:~# lvremove /dev/vg/win2003-snap
root@host-system:~# lvdisplay
File descriptor 7 left open
--- Logical volume ---
LV Name /dev/vg/lv1
VG Name vg
LV UUID MOQz2A-cvrL-pJzT-63yU-ltRQ-rLjW-t6ok3V
LV Write Access read/write
LV Status available
# open 2
LV Size 100.00 GB
Current LE 7680
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
4. Восстановление
В случае краха гостевой ОС остановим виртуальный домен:
root@host-system:~# xm shutdown win2003
root@host-system:~# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 602 4 r----- 374304.9
Восстановим раздел из файла, содержащего резервную копию:
root@host-system:~# gunzip -c /mnt/backup-storage/win2003.gz | dd of=/dev/vg/lv1 bs=1024000
Стартуем виртуальный домен:
root@host-system:~# xm create /etc/xen/config/win2003
root@host-system:~# xm list
Name ID Mem VCPUs State Time(s)
Domain-0 0 602 4 r----- 374304.9
win2003 104 2048 2 -b---- 2844.4
P.S.
root@host-system:~# uname -a
Linux host-system 2.6.26-1-xen-amd64 #1 SMP Sat Jan 10 20:39:26 UTC 2009 x86_64 GNU/Linux
Linux host-system 2.6.26-1-xen-amd64 #1 SMP Sat Jan 10 20:39:26 UTC 2009 x86_64 GNU/Linux
root@host-system:~# cat /etc/debian_version
5.0
5.0
root@host-system:~# aptitude show xen-hypervisor
Package: xen-hypervisor
State: not a real package
Provided by: xen-hypervisor-3.2-1-amd64
Package: xen-hypervisor
State: not a real package
Provided by: xen-hypervisor-3.2-1-amd64


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