nbd-n keresztül LVM másolás

 ( pista_ | 2018. február 9., péntek - 22:42 )

Hi!

Debian wheezy-n nbd-server (3.2-4~deb7u5) melyről szeretnék egy LV-t átvinni egy másik gépre. Az nbd-client (3.15.2-3) egy ubuntu 17.10-es, amin ugyanúgy megvan az LVM.
A következő paranccsal próbálkozom sikertelenül:

======================
nbd-client 192.168.1.182 /dev/lvm-data/as-ter-disk -N ter
Negotiation: ..size = 30720MB
Failed to set blocksize 1024
Error: Ioctl/1.1a failed: Inappropriate ioctl for device

Exiting.
======================

Közebn a szerver oldalon ezt látom a logban:

=====================
Feb  9 21:31:56 dell-2-dom0 nbd_server[26148]: Spawned a child process
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: virststyle ipliteral
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: connect from 192.168.1.184, assigned file is /dev/mapper/lvm--data-as--ter--disk
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: Can't open authorization file (null) (Bad address).
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: Starting to serve
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: Size of exported file/device is 32212254720
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: Read failed: Bad file descriptor
Feb  9 21:31:56 dell-2-dom0 nbd_server[26549]: Exiting.
Feb  9 21:31:56 dell-2-dom0 nbd_server[26148]: Child exited with 1
=====================

Igen, nincs "authorization file", így mindenhonnan elérhető, de belső hálón épp nem zavar. A szerver configja imigen néz ki:

=====================
generic]
        includedir = /etc/nbd-server/conf.d


[ter]
        exportname = /dev/mapper/lvm--data-as--ter--disk
        readonly = true
=====================

A /dev/mapper/lvm--data-as--ter--disk LV-n egy debian található, ezt szerettem volna átvinni egy másik gépre.
Mit rontok el, mit nézek el?

Minden ötletet, segítséget előre is köszönök!

Hozzászólás megjelenítési lehetőségek

A választott hozzászólás megjelenítési mód a „Beállítás” gombbal rögzíthető.

miért bonyolítod túl a "dd over netcat" dolgot? :-)

Szerk: a https://hup.hu/node/157801#new
thread-et hogyan tudjunk minél bonyolultabban kivitelezni?

Igen, láttam és hálás is vagyok a válaszokért!
Viszont XEN-el kapcsolatban találtam ezt a NBD-s dolgot és jónak tűn, kíváncsi lettem rá és gondoltam kipróbálom, bele is másztam mielőtt jöttek volna az egyéb ötletek. Most pedig "zavar", hogy nem működik. :-)

Tetszik az SSH-s ötlet is, de a netcat-ot néztem már és valószínű egy másik LV-vel kipróbálom.

Mindenképp beszámolok az eredményről.

A "dd over ssh" és a "dd over netcat" kb uaz, azzal a különbséggel, hogy az SSH titkosítást (és tömörítést) tesz rá, nem kevés CPU overhead-el.
Nekem az volt a tapasztalatom, hogy az SSH meg sem közelítette a netcat sebességét, amíg utóbbi majdnem wirespeed (amennyiben a disk meg tudja tölteni a puffert)

na es ha NPM-SSH-val probalod?

rákerestem, h npm-ssh, de semmi relevánsat nem találtam. mi lenne ez?

Gondolom Javascriptben íródott, így biztos sokkal gyorsabb lesz, mint a sima... :D:D:D

https://blog.toggl.com/world-created-programmer/

kliens oldalon mar nem latszik, hogy ez egy LVM volume, hanem NBD device lesz. ennek megfeleloen kell a kliens oldalon a device nevet valasztani:

nbd-client 192.168.1.182 /dev/nbd0 -N ter

es ezert nem is kell kliens oldalon letrehozni az LVM-et, hanem pl

mount /dev/nbd0 /mnt -o ro

(nem masolat lesz klienes oldalon, ha beleirsz, akkor a szerver oldalon modositod!)

+1, bár én félreértettem az eredeti kérdést.

Ha jól értem, akkor nem LV t akar másolni, hanem valójában egy fst, ami történetesen egy LV. Nem mindegy :)

Én csináltam olyat, hogy nbd-client távoli gép hdd je, aztán lvm.conf ban /dev/nbd ignore kikapcsolás.

pvcreate /dev/nbd0
vgextend akarmi /dev/nbd0
pvmore /dev/sda1 /dev/nbd0
vgreduce akarmi /dev/sda1
pvremove /dev/sda1

Ezen a ponton sda újrapartícionálása (pl. gpt, vagy bcache, vagy ki tudja mi miatt) és aztán vissza az egész.

Hibátlanul működött. Csak ne szakadjon a net a pvmove közben :D

Természetesen senkinek nem ajánlom, hogy ezt csinálja, de jó érzés tudni, hogy lehetséges.

A kérdezőnek szerintem nem ez volt a kérdése, de azért gondoltam leírom. :)