Nbd » История » Редакция 15
Редакция 14 (Андрей Волков, 2017-12-07 09:26) → Редакция 15/16 (Андрей Волков, 2017-12-07 09:41)
h1. 1. nbd (debian) h2. На сервере *apt-get install qemu-utils* не ниже 2.1 *qemu-nbd -p 2000 -b 192.168.122.101 -f raw /dev/ssd6/hermes-storage &* h2. На клиенте Ядро должно быть не ниже 4.3-rc2 Иначе велика вероятность огрести ошибку с таймаутом https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=770479 *nbd-client 192.168.122.101 2000 /dev/nbd0* <pre> Negotiation: ..size = 716800MB bs=1024, sz=751619276800 bytes </pre> *vi /etc/lvm/lvm.conf* <pre> filter = [ "a|^/dev/[hs]d[a-f][0-9]$|", "a|^/dev/nbd[0-9]+$|", "r/.*/" ] </pre> *pvcreate /dev/nbd0* h1. 2. nbd (gentoo) h2. На сервере <pre> lvcreate -L 210g -n temp-space vg-name qemu-nbd -p 51621 -b 172.31.53.254 -f raw /dev/vg-name/temp-space & </pre> h2. На клиенте h3. Задаем лимиты <pre> 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 </pre> h3. Монтируем клиента <pre> busybox nbd-client 172.31.53.254 51621 /dev/nbd0 </pre> # sed -i '/filter = /s:"r|/dev/nbd.*|", ::' /etc/lvm/lvm.conf Процесс уходит в фон h3. Разрешаем LVM на nbd устройствах */etc/lvm/lvm.conf* Добавляем кусок *"a|/dev/nbd[0-9]+$|",* в начало опций: <pre> # "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/.*/" ] </pre> h3. Расширяем группу <pre> pvcreate /dev/nbd0 vgextend data /dev/nbd0 </pre> h3. зеркалируем разделы В нашем примере для гигабитного канала можно запустить 4 параллельных синхронизации для максимальной утилизации полосы пропускания (4x240Мбит/с=960Мбит/с) <pre> lvconvert -m1 --type raid1 data/lv_name1 data/static /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 </pre> h3. Наблюдаем за процессом <pre> LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert lv_name1 static 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 0.15 </pre> h2. После завершения синхронизации https://redmine.ekb-info.ru/projects/gnu-linux/wiki/Lvm-mirroring h2. Окончание <pre> kill -9 $(</sys/block/nbd0/pid) </pre>