6,534
edits
Changes
created
This describes a non-official and unsupported method of cloning ploop containers. It uses shared base ploop delta (this configuration is not officially supported but apparently works just fine).
This method lets you very quickly create thousands of identical containers. This might be useful for example in testing.
== Legacy OpenVZ ==
<source lang="bash">
SRCID=50 # "Donor" container ID
TMPL=centos-6-x86_64 # Template to use
vztmpl-dl $TMPL # make sure we use the latest one
vzctl create $SRCID --ostemplate $TMPL
vzctl mount $SRCID
while killall -0 ext4lazyinit; do sleep 1; done
vzctl umount $SRCID
vzctl snapshot $SRCID
for CT in $(seq 1000 2000); do \
mkdir -p /vz/private/$CT/root.hdd /vz/root/$CT; \
ln /vz/private/$SRCID/root.hdd/root.hdd /vz/private/$CT/root.hdd/root.hdd; \
cp -nr /vz/private/$SRCID/root.hdd /vz/private/$CT/; \
cp /etc/vz/conf/$SRCID.conf /etc/vz/conf/$CT.conf; \
done
vzctl set $SRCID --disabled yes --save # make sure we don't use it
</source>
== VZ7 ==
The differences from the above script are:
# Need to run <code>vzpkg</code> instead of <code>vztmpl-dl</code>
# Need to remove <code>VEID=</code> line from the "donor" config file
# Need to copy <code>.ve.layout</code> from the donor private area
<source lang="bash">
SRCID=50 # "Donor" container ID
TMPL=centos-6-x86_64 # Template to use
vzpkg update cache $TMPL # make sure we use the latest one
vzctl create $SRCID --ostemplate $TMPL
vzctl mount $SRCID
while killall -0 ext4lazyinit; do sleep 1; done
vzctl umount $SRCID
vzctl snapshot $SRCID
sed -ie '/^VEID=/d' /etc/vz/conf/$SRCID.conf
for CT in $(seq 1000 2000); do \
mkdir -p /vz/private/$CT/root.hdd /vz/root/$CT; \
ln /vz/private/$SRCID/root.hdd/root.hdd /vz/private/$CT/root.hdd/root.hdd; \
cp -nr /vz/private/$SRCID/root.hdd /vz/private/$CT/; \
cp /etc/vz/conf/$SRCID.conf /etc/vz/conf/$CT.conf; \
cp -a /vz/private/50/.ve.layout /vz/private/$CT/; \
done
</source>
This method lets you very quickly create thousands of identical containers. This might be useful for example in testing.
== Legacy OpenVZ ==
<source lang="bash">
SRCID=50 # "Donor" container ID
TMPL=centos-6-x86_64 # Template to use
vztmpl-dl $TMPL # make sure we use the latest one
vzctl create $SRCID --ostemplate $TMPL
vzctl mount $SRCID
while killall -0 ext4lazyinit; do sleep 1; done
vzctl umount $SRCID
vzctl snapshot $SRCID
for CT in $(seq 1000 2000); do \
mkdir -p /vz/private/$CT/root.hdd /vz/root/$CT; \
ln /vz/private/$SRCID/root.hdd/root.hdd /vz/private/$CT/root.hdd/root.hdd; \
cp -nr /vz/private/$SRCID/root.hdd /vz/private/$CT/; \
cp /etc/vz/conf/$SRCID.conf /etc/vz/conf/$CT.conf; \
done
vzctl set $SRCID --disabled yes --save # make sure we don't use it
</source>
== VZ7 ==
The differences from the above script are:
# Need to run <code>vzpkg</code> instead of <code>vztmpl-dl</code>
# Need to remove <code>VEID=</code> line from the "donor" config file
# Need to copy <code>.ve.layout</code> from the donor private area
<source lang="bash">
SRCID=50 # "Donor" container ID
TMPL=centos-6-x86_64 # Template to use
vzpkg update cache $TMPL # make sure we use the latest one
vzctl create $SRCID --ostemplate $TMPL
vzctl mount $SRCID
while killall -0 ext4lazyinit; do sleep 1; done
vzctl umount $SRCID
vzctl snapshot $SRCID
sed -ie '/^VEID=/d' /etc/vz/conf/$SRCID.conf
for CT in $(seq 1000 2000); do \
mkdir -p /vz/private/$CT/root.hdd /vz/root/$CT; \
ln /vz/private/$SRCID/root.hdd/root.hdd /vz/private/$CT/root.hdd/root.hdd; \
cp -nr /vz/private/$SRCID/root.hdd /vz/private/$CT/; \
cp /etc/vz/conf/$SRCID.conf /etc/vz/conf/$CT.conf; \
cp -a /vz/private/50/.ve.layout /vz/private/$CT/; \
done
</source>