Действия
1. nbd (debian)¶
На сервере¶
apt-get install qemu-utils не ниже 2.1
qemu-nbd -p 2000 -b 192.168.122.101 -f raw /dev/ssd6/hermes-storage &
На клиенте¶
Ядро должно быть не ниже 4.3-rc2
Иначе велика вероятность огрести ошибку с таймаутом
https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770479
nbd-client 192.168.122.101 2000 /dev/nbd0
Negotiation: ..size = 716800MB bs=1024, sz=751619276800 bytes
vi /etc/lvm/lvm.conf
filter = [ "a|^/dev/[hs]d[a-f][0-9]$|", "a|^/dev/nbd[0-9]+$|", "r/.*/" ]
pvcreate /dev/nbd0
2. nbd (gentoo)¶
На сервере¶
lvcreate -L 210g -n temp-space vg-name qemu-nbd -p 51621 -b 172.31.53.254 -f raw /dev/vg-name/temp-space &
На клиенте¶
Задаем лимиты¶
modprobe nbd modprobe raid1 echo 1 > /sys/module/raid1/parameters/max_queued_requests # 30000 == 30Мбайт/сек ~ 240Мбит/сек echo 30000 > /proc/sys/dev/raid/speed_limit_max
Монтируем клиента¶
busybox nbd-client 172.31.53.254 51621 /dev/nbd0
Процесс уходит в фон
Разрешаем LVM на nbd устройствах¶
/etc/lvm/lvm.conf
Добавляем кусок "a|/dev/nbd[0-9]+$|", в начало опций:
filter = [ "a|/dev/nbd[0-9]+$|", "a|/dev/md[0-9]+$|", "a|/dev/[hsv]d[a-z][0-9]*$|", "r/.*/" ] global_filter = [ "a|/dev/nbd[0-9]+$|", "a|/dev/md[0-9]+$|", "a|/dev/[hsv]d[a-z][0-9]*$|", "r/.*/" ]
Расширяем группу¶
pvcreate /dev/nbd0 vgextend data /dev/nbd0
зеркалируем разделы¶
В нашем примере для гигабитного канала можно запустить 4 параллельных синхронизации для максимальной утилизации полосы пропускания (4x240Мбит/с=960Мбит/с)
lvconvert -m1 --type raid1 data/lv_name1 /dev/nbd0 lvconvert -m1 --type raid1 data/lv_name2 /dev/nbd0 lvconvert -m1 --type raid1 data/lv_name3 /dev/nbd0 lvconvert -m1 --type raid1 data/lv_name4 /dev/nbd0 lvs ... lvconvert -m1 --type raid1 data/lv_nameN /dev/nbd0 lvs
Наблюдаем за процессом¶
LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv_name1 data rwi-aor--- 200.00g 24.15 lv_name2 data rwi-aor--- 200.00g 20.00 lv_name3 data rwi-aor--- 200.00g 18.44 lv_name4 data rwi-aor--- 200.00g 15.31 ... lv_nameN data rwi-ao---- 200.00g
После завершения синхронизации отключаем локальный диск¶
lvconvert -m0 data/lv_nameN /dev/sda3
Указывается отключаемый диск
Окончание¶
kill -9 $(</sys/block/nbd0/pid)
Обновлено Андрей Волков 7 месяца назад · 16 изменени(я, ий)