Portál AbcLinuxu, 29. října 2025 07:55
Při vytváření image by měly být klíčové služby ideálně zastaveny, ať se na disku nemění během kopírování data.Pro tohle je vhodné používat souborový systém, který umí snapshoty.
dd se pak pustí na provedený snapshot.
flush tables with read lock, ale ihned po vytvoření se to zas může ukončit.
flush tables with read lock a vytvoříš LVM snapshot, tak tě nezajímá (tj. nezáleží na tom) zda to je opravdu zapsaný na disku (což teda mimochodem ani sync nezaručuje).
dd if=/dev/zero of=/zero; rm -f /zero. Nuly sa komprimuju lepsie nez historicky bordel.
. Takže už je to stejně jedno, vím že mě sleduješ dnem i nocí...
OpenVZ mám podezření, že musí být použit kernel stejné verze?Jako že bys na fyzickém nesměl upgradovat jádro? Proč?
Ale pokud chceš vědět jak to na hostitelských strojích dělám já..
Mám tři stroje. Dva datové a jeden virtualizační. Vzájemně jsou schopny se zastoupit a infrasrukturu mám navrženout tak, že ji mohu za běhu stěhovat s minimálním výpadkem. Takže ty stroje točím.
U single strojů, kde tahle možnost není využívám LVM a oddělený systémový disk. Nainstaluji aktualizaci do novélo LV oddílu a restartuji. Pokud to klapne, nechám to běžet, pokud ne, tak se rebootne zpátky do původního oddílu.
A jak se ta závislost řeší u VPS?Zaprvé je důležité se smířit s faktem, že kontejnery nejsou to stejné co virtualizovaný hardware. Řešení jsou různá. Například lze nepoužívat služby závislé na nových verzích kernelu. Nebo lze mít pro jednu verzi distribuce jeden fyzický stroj a virtuály neupgradovat nebo po upgradu migrovat na fyzický stroj s vyšší verzí jádra. Obecně provoz kontejnerů vyžaduje více znalostí a práce, snajpa z vpsfree by mohl povídat. A vůbec, kde je, když ho potřebujem?
/etc/vz # cat osrelease.conf # List of kernel versions (osreleases) required by different # distributions (OS templates). vzctl tells kernel to report # the given version to containers based on a specified distro. # # Format: < template> < minimum kernel version required> fedora-11 2.6.18 fedora-12 2.6.18 fedora-13 2.6.18 fedora-14 2.6.32 fedora-15 2.6.32 debian-6.0 2.6.32 ubuntu-12.04 2.6.32Potom OpenVZ udrzuje distribution-specific skripty, ktere napr. nastavuji hostname, IP adresy, DNS resolvery, to vypada zhruba takhle:
/etc/vz # ls dists/ alpine.conf default owl.conf scripts suse-8.2.conf altlinux-2.4.conf distribution.conf-template redhat-7.0.conf slackware-9.0.conf suse.conf altlinux.conf fedora.conf redhat-7.1.conf slackware-9.1.conf ubuntu-6.06.conf arch.conf fedora-core.conf redhat-7.2.conf slackware.conf ubuntu.conf centos.conf funtoo.conf redhat-7.3.conf sles.conf debian-3.0.conf gentoo.conf redhat.conf suse-7.3.conf debian-3.1.conf mandrake.conf rhel.conf suse-8.0.conf debian.conf opensuse.conf scientific.conf suse-8.1.conf /etc/vz # ls dists/scripts/ arch-add_ip.sh functions redhat-7.x_add_ip.sh slackware-del_ip.sh arch-del_ip.sh funtoo-add_ip.sh redhat-add_ip.sh slackware-set_hostname.sh arch-set_hostname.sh funtoo-del_ip.sh redhat-del_ip.sh slackware-set_ugid_quota.sh arch-set_ugid_quota.sh funtoo-set_dns.sh redhat-set_hostname.sh suse-7.x_add_ip.sh debian-3.x-add_ip.sh gentoo-add_ip.sh set_dns.sh suse-8.x_add_ip.sh debian-add_ip.sh gentoo-del_ip.sh set_ugid_quota.sh suse-8.x_del_ip.sh debian-del_ip.sh gentoo-set_hostname.sh set_userpass.sh suse-add_ip.sh debian-set_hostname.sh gentoo-set_ugid_quota.sh slackware-9.x_add_ip.sh suse-del_ip.sh etcnet-add_ip.sh postcreate.sh slackware-9.x_del_ip.sh suse-set_hostname.sh etcnet-del_ip.sh prestart.sh slackware-add_ip.sh /etc/vz # cat dists/ubuntu.conf # Copyright (C) 2000-2008, Parallels, Inc. All rights reserved. # # < stripnuty GPL header tady> ADD_IP=debian-add_ip.sh DEL_IP=debian-del_ip.sh SET_HOSTNAME=debian-set_hostname.sh SET_DNS=set_dns.sh SET_USERPASS=set_userpass.sh SET_UGID_QUOTA=set_ugid_quota.sh POST_CREATE=postcreate.sh PRE_START=prestart.sh
Jinak stava se, ze obcas nefunguje nejake nove distro - Fedora je krasny priklad, kde casto veci visi na novinkach v kernelu. Vetsinou to lidi z OpenVZ dodelaji do par tydnu, max mesicu, takze to neni az takovy problem. Na podporu Ubuntu 12.04 jsme tusim cekali 2 mesice, tam nas to trochu stvalo, protoze ho lidi proste chteli hned 
Co se tyce Debianu, fungovaly mi vzdycky krasne vsechny verze od Sarge (tzn. odkdy s Debianem delam), dist-upgrade sebehnul vzdycku bez problemu - teda az na jednu situaci s NFS mounty, ktere mame do kontajneru mountovane zeshora (zalohy a NAS), takze bylo potreba ve vpsAdminu ty mounty poodpojovat.
. Jeste je v planu on-demand backup vyvolatelny 1x denne, aby si to clovek mohl odzalohovat pred tim, nez jde neco delat a pak se da on-click zaloha obnovit, kdyz se neco nepovede. ZFS umoznuje delat divy, jenom musim komunitu dokopat fixnout temer jisty deadlock pri spusteni zfs send u stroju pod memory pressure.
, ale toto proste nedavam. Mam VPS na pokusy a krome toho ze mi nefunguje pouhe opsani tak to ani moc nechapu coz me stve nejvic :(
Prvni prikaz asi funguje, ale nemel jsem odvahu zkouset. Jestli to dobre chapu tak to bude kopirovat surova data z disku VPS do souboru na VPS. Za prve, domnival jsem se ze dd bere proste surova data tak jak lezi na hdd, protoze dd jsem predtim pouzil na vytvoreni kopie boot sektoru na notebooku, abych si nainstaloval debian vedle windows aniz bych nejak poskodil jejich zavadec a prisel tak o moznost recovery a o moznost debian snadno smazat :). Jestli linux maze soubory stejne jako wokna a neprepisuje je nulama tak mam pocit ze ten obraz bude pri pouziti dd tak velky ze se ani pri te komprimaci nema sanci na ten disk vejit. Za druhe, jak muzu delat obraz neceho na co ukladam ten obraz? To v tom obrazu bud mit i cast toho obrazu? Kde mam prosim v chapani toho prikazu chybu? Priznam se ze moc nechapu ty roury takze asi tam, co?
S Billem jsem od Win 3.1 takze to se mnou asi nebude lehke, ale u WIN 8 jsem si proste rekl a dost :o a tak tady ted zebram :)
. Článek by neměl být chápán jako návod, jak to krok za krokem udělat, ale spíše inspirace, jinak si následky neseš sám.
Jinak můžu jeden příkaz objasnit:
ssh root@server "dd if=/dev/vda | xz" | unxz | dd of=/home/uzivatel/server.imgudělá to, že se ssh přihlásí na server pod uživatelem root a spustí na něm příkaz dd, který začné číst disk /dev/vda na serveru, ještě se to prožene kompresí (ta není podstatná - lze vynechat), ovšem samozřejmě se to nezapisuje zpatky na server (to by se to tam skutečně nevlezlo), ale posílá se to přes ssh po síti k tobě na notebook, dekomprimuje se to a teprve na notebooku zapíše do server.img. Ale skutečně doporučuju se prvně pořádně naučit základy bashe a Linuxu a až pak zkoušet něco pokročilejšího. Obzvlášť s příkazy jako dd, co umí něco přemazat raz dva.
Tiskni
Sdílej:
ISSN 1214-1267, (c) 1999-2007 Stickfish s.r.o.