Проект

Общее

Профиль

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>