Portál AbcLinuxu, 4. května 2025 00:43
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.
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č?
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.
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.