Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / скопировать файл с виртуальной машиной xen не выключая ее / 11 сообщений из 11, страница 1 из 1
07.12.2011, 11:23
    #37562566
Simon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
всем привет!

никто не подскажет можно как-нибудь скопировать файл с виртуальной машиной во время ее работы?
т.е. надо сделать самый обычный бэкап
xen, centos
...
Рейтинг: 0 / 0
07.12.2011, 11:29
    #37562590
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
положить его на lvm и снепшотами бекапить:

lvcreate --size 10G --snapshot --name snap /dev/test
mount -o ro /dev/test/snap /mnt_bckp/snap
cp /mnt_bckp/snap/образ_машины.iso /хранилище_бекапов


или положить виртуалку в .qcow если xen понимает qemu и бекапить qemu-й
...
Рейтинг: 0 / 0
07.12.2011, 15:14
    #37563214
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
Журавлев Денисlvcreate --size 10G --snapshot --name snap /dev/test
mount -o ro /dev/test/snap /mnt_bckp/snap
cp /mnt_bckp/snap/образ_машины.iso /хранилище_бекапов
забыл еще пару шагов в конце:
umount /mnt_bckp/snap
lvremove -f /dev/test/snap
...
Рейтинг: 0 / 0
07.12.2011, 17:29
    #37563577
Simon
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
стремные какие-то операции
1. ничего не сломается?
2. точно виртуальную машину тормозить не надо?
...
Рейтинг: 0 / 0
07.12.2011, 17:44
    #37563628
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
Simonстремные какие-то операции
1. ничего не сломается?
2. точно виртуальную машину тормозить не надо?
у меня десятки виртуалок так бекапятся.

cat back-fs.sh
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
47.
48.
49.
50.
51.
52.
53.
54.
55.
56.
57.
58.
59.
60.
61.
62.
63.
64.
65.
66.
67.
68.
69.
70.
71.
72.
73.
74.
75.
76.
77.
78.
79.
80.
81.
82.
83.
84.
85.
86.
87.
88.
89.
90.
91.
92.
93.
94.
95.
96.
97.
98.
99.
100.
101.
102.
103.
104.
105.
106.
107.
108.
109.
110.
111.
112.
#!/bin/sh

# script result
sresult=0

# set io priority of this process to minimum (idle)
ionice -c3 -p$$

# limit io bandwidth to 10 Mbit
lcat="/root/bin/cstream -t -10485760"

echo == mount backup target share ==
mount -t cifs -o user=$smbu $smbs $tdir
rval=$?

if [ "$rval" -eq 0 ] 
then
    echo == rotate backup file $trawdata ==
    trawdata=`/root/backup/rotate.sh $trawdata $bckpcnt`
    rval=$?
    if [ "$rval" -eq 0 ] 
    then
        echo == new backup filename $trawdata ==
        echo == rotate xml metadata file $xmlf ==
        xmlf=`/root/backup/rotate.sh $xmlf $bckpcnt`
        rval=$?
        if [ "$rval" -eq 0 ]
        then
            echo == new xml filename $xmlf ==
	    echo == create lvm snapshot ==
	    /sbin/lvcreate --size 10G --snapshot --name $lvsnap $vgname/$lvb
	    rval=$?

	    if [ "$rval" -eq 0 ]
	    then
		echo == mount snapshot to temp directory ==
		mount -o ro $vgname/$lvsnap $tmpmnt
		rval=$?

		if [ "$rval" -eq 0 ]
		then
		    echo == copy and compress image of virtual host ==
		    $lcat $srawdata |gzip -c > $trawdata
		    rval=$?

		    if [ "$rval" -ne 0 ]
		    then
			echo -- error on copy and compress image of virtual host -- >&2
			sresult=1
		    fi

		else
		    echo -- error on mount snapshot to temp directory -- >&2
		    sresult=1
		fi

		echo == unmount temp directory ==
		umount $tmpmnt
		rval=$?

		if [ "$rval" -ne 0 ]
		then
		    echo -- error on unmount temp directory -- >&2
		    sresult=1
		fi

	    else
		echo -- error on create lvm snapshot -- >&2
		sresult=1
	    fi

	    echo == remove lvm snapshot ==
	    /sbin/lvremove -f $vgname/$lvsnap
	    rval=$?

	    if [ "$rval" -ne 0 ]
	    then
		echo -- error on remove lvm snapshot -- >&2
		sresult=1
	    fi

	    echo == dump virtual host metadata to xmlfile ==
	    virsh dumpxml $vhost > $xmlf
	    rval=$?
	   
	    if [ "$rval" -ne 0 ]
	    then
		echo -- error on dump virtual host metadata to xmlfile -- >&2
		sresult=1
            fi
        else
            sresult=1
        fi  
    else
        sresult=1
    fi

else
  echo -- error on mount backup target share -- >&2
  sresult=1
fi

echo == umount backup target share ==
umount $tdir
rval=$?

if [ "$rval" -ne 0 ]
then
  echo -- error on umount backup target share -- >&2
  sresult=1
fi

exit $sresult


cat start-back-elastix.sh
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
25.
26.
27.
28.
29.
30.
31.
32.
33.
34.
35.
36.
37.
38.
39.
40.
41.
42.
43.
44.
45.
46.
#!/bin/sh

# virtual host name
export vhost=elastix

log=/root/backup/log/back-$vhost-`date +%Y-%m-%d-%H-%M-%S`.log

# backup source file
export srawdata=/mnt_bckp/snap/Elastix162.vmdk

# lvm group name
export vgname=/dev/test-bo-rootfs

# lvm volume name for backup
export lvb=vmimages

# temp lvm volume (snapshot)
export lvsnap=snap

# temp mount point for mount snapshot
export tmpmnt=/mnt_bckp/snap

# samba user
export smbu=win_domen\\username,password=userpassword

# samba server
export smbs=//192.168.x.xxx/virtbackup

# backup target dir
export tdir=/mnt_bckp/ttt

# backup target file
export trawdata=$tdir/$vhost/$vhost.vmdk.gz

# host metadata xmlfile
export xmlf=$tdir/$vhost/$vhost.xml

# count of file to store 
export bckpcnt=4

/root/backup/back-fs.sh >$log 2>&1

rval=$?
if [ "$rval" -ne 0 ]; then
cat $log|mail -s "error on $vhost backup" root
fi
...
Рейтинг: 0 / 0
07.12.2011, 20:03
    #37563896
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
Simon2. точно виртуальную машину тормозить не надо?Надо тормозить. Создание снапшота тоже занимает некоторое время и бекап образа VM может быть неконсистентным.
...
Рейтинг: 0 / 0
07.12.2011, 20:28
    #37563941
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
Relic HunterSimon2. точно виртуальную машину тормозить не надо?Надо тормозить. Создание снапшота тоже занимает некоторое время и бекап образа VM может быть неконсистентным.
Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
# lvdisplay /dev/store/backups
  --- Logical volume ---
  LV Name                /dev/store/backups
.....
  LV Write Access        read/write
  LV Status              available
  # open                 1
   LV Size                2.00 TB 
....

# /usr/bin/time -v lvcreate --size 10G --snapshot --name snap /dev/store/backups
  Logical volume "snap" created
        Command being timed: "lvcreate --size 10G --snapshot --name snap /dev/store/backups"
        User time (seconds): 0.01
        System time (seconds): 0.02
        Percent of CPU this job got: 2%
         Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.69 
....
        File system inputs: 424
        File system outputs: 144
1 секунда.


Код: plaintext
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
13.
 # lvdisplay /dev/store/testiscsi
....
   LV Size                20.00 GB 
....
# /usr/bin/time -v lvcreate --size 10G --snapshot --name snap /dev/store/testiscsi
..
        User time (seconds): 0.01
        System time (seconds): 0.02
        Percent of CPU this job got: 1%
         Elapsed (wall clock) time (h:mm:ss or m:ss): 0:01.85 
...
        File system inputs: 424
        File system outputs: 128
...
Рейтинг: 0 / 0
07.12.2011, 20:32
    #37563949
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
The snapshot command itself hunts down mounted filesystems using the volume being snapshotted and calls a special hook that checkpoints them in a consisten, mountable state and does the snapshot atomically.
...
Рейтинг: 0 / 0
07.12.2011, 20:43
    #37563964
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
We can continue working with the original device, without changing the data in the snapshot.

COW (Copy-On-Write) - Every time data is written to the original device, the Linux kernel copies the old data to the snapshot's device, and only then updates the original device.

Thus, the first write to a snapshot is translated into a read (from the origin), a write (to the snapshot) and another write (to the origin).

The kernel keeps an on-disk hash-table of the chunks that were copied to the snapshot.

This is used both for reads, and to avoid redundant copies.
...
Рейтинг: 0 / 0
07.12.2011, 21:02
    #37563979
Relic Hunter
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
Журавлев Денис,

В вся штука в том, что для журналируемых файловый систем типа ext3 при монтирование снимка происходит рекавери, чем и обеспечивается консистентность. Но для IO интенсивных программ, типа Оракла, которые обходят ФС все может быть не так радужно при открытии снепшота. Поэтому и рекомендуют (не я:)) приостановить любую IO активность в момент создания снепа. либо средствами виртуализации, либо средствами самого ПО гостевой машины.
Data consistency
...
Рейтинг: 0 / 0
07.12.2011, 21:49
    #37564017
Журавлев Денис
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
скопировать файл с виртуальной машиной xen не выключая ее
журналируемые фс, журналируют по дефолту изменения структуры ф.с., изменения данных не журналируют.

Ну и я бы переживал, о кешировании записи на хосте, но уж точно не об атомарности lvcreate.
Но это и так понятно <driver name='qemu' type='raw' cache='none'/>

Т.е. как вообще можно при lvm, написать что-то мимо lvm? Вот писали, вот поступила команда испльзовать cow, начали писать cow.
...
Рейтинг: 0 / 0
Форумы / Unix-системы [игнор отключен] [закрыт для гостей] / скопировать файл с виртуальной машиной xen не выключая ее / 11 сообщений из 11, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]