こちらも物理サーバーのCentOS5を停止せずに強引にイメージ化 - Qiita
以下で成功
- Debian4 i386
- Debian5 i386
- CentOS5 i386
- CentOS6 x86_64
- Ubuntu 14.04_64
参考
移行したいサーバにて実施
- qcow2イメージの場合KVM - qcow2イメージのマウント - Qiita
excludes.excl
.bash_history
/dev/*
/mnt/*
/tmp/*
/proc/*
/sys/*
/usr/src/*
/run/*
/var/lib/docker/*
を用意し、
無圧縮
tar --numeric-owner -cpf /mnt/mysystem.tar / -X excludes.excl
- /tmp/mysystem.tar を Proxmox にscp。
Proxmoxにて実施
mkdir /var/lib/vz/private/233
mkdir /var/lib/vz/root/233
cp /etc/vz/conf/{100,233}.conf
/etc/vz/conf/233.conf
- VE_ROOT="/var/lib/vz/root/100"
- VE_PRIVATE="/var/lib/vz/private/100"
+ VE_ROOT="/var/lib/vz/root/233"
+ VE_PRIVATE="/var/lib/vz/private/233"
cd /var/lib/vz/private/233
tar jxf mysystem.tar.bz2
mkdir proc
コンテナ用修正 (CentOS)
- Ubuntuは下に記載
設定ファイル修正
etc/inittab
sed -i -e 's@^[0-9].*getty.*tty@#&@g' etc/inittab
echo "1:2345:respawn:/sbin/mingetty tty1" >> etc/inittab
etc/fstab
mv etc/fstab{,.old}
egrep '/dev/pts|/dev/shm|/proc|/sys' etc/fstab.old > etc/fstab
chroot .
/dev
mknod --mode 666 /dev/ptmx c 5 2
mkdir /dev/pts
/sbin/MAKEDEV -d /dev ttyp ptyp
rm -f /dev/null
mknod --mode 666 /dev/null c 1 3
mknod --mode 444 /dev/urandom c 1 9
udev
mkdir /etc/udev/devices
/sbin/MAKEDEV -d /dev {p,t}ty{a,p}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f} console core full kmem kmsg mem null port ptmx random urandom zero ram0
/sbin/MAKEDEV -d /etc/udev/devices {p,t}ty{a,p}{0,1,2,3,4,5,6,7,8,9,a,b,c,d,e,f} console core full kmem kmsg mem null port ptmx random urandom zero ram0
不要なサービス停止
for s in \
acpid \
amd \
checkfs \
checkroot \
clock \
consolefont \
hdparm \
klogd \
keymaps \
kudzu \
lm_sensors \
microcodectl \
netplugd \
irqbalance \
auditd \
lvm2-monitor \
ntp
do
/sbin/chkconfig $s off
done
OpenVz側でネットワーク設定を行うため一旦削除
rm /etc/sysconfig/network-scripts/ifcfg-bond*
rm /etc/sysconfig/network-scripts/ifcfg-eth*
OSTEMPLATE値を修正
OpenVzのコンテナからnfsマウントしたい
/etc/pve/openvz/233.conf
+ FEATURES="nfs:on"
OpenVzのコンテナでnfsdを動かしたい
/etc/pve/openvz/233.conf
+ FEATURES="nfsd:on"
ネットワーク設定例
/etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE="eth0"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
TYPE=Ethernet
NAME="eth0"
BOOTPROTO=static
DNS1="8.8.8.8"
DNS2="8.8.4.4"
DOMAIN=local
IPADDR=192.168.33.11
NETMASK=255.255.255.0
GATEWAY=192.168.33.1
/etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE="eth1"
ONBOOT=yes
NETBOOT=yes
IPV6INIT=no
TYPE=Ethernet
NAME="eth1"
BOOTPROTO=static
IPADDR=192.168.0.11
NETMASK=255.255.255.0
その他
Debianの場合
サービス停止
debianの場合
update-rc.d -f サービス名 remove
事前にtemplateからコンテナ作成
vzctl stop 100
mv /var/lib/vz/private/100{,.bak}
mv ./bkup /var/lib/vz/private/100
vzctl start 100
vzctl enter 100
コンテナ用修正 (Ubuntu)
mkdir dev tmp proc mnt sys
chmod 777 tmp
resolvconf: Error: /run/resolvconf/interface either does not exist or is not a directory
対処
# crontab -e
@reboot echo "nameserver 8.8.8.8" > /etc/resolv.conf
df -h の結果がホストのHDDを表示する場合
Quotaがおかしい。
ホストのHDDの容量が表示されている!!
root@container1:/# df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/simfs 917G 379G 492G 44% /
Quota修正手順
vzctl stop 391
vzquota off 391 -f
vzquota drop 391
vzquota start 391
治った
root@container1:/# df -h .
Filesystem Size Used Avail Use% Mounted on
/dev/simfs 330G 260G 71G 79% /