Trong quá trình quản trị sẽ có những lúc cần phải bảo trì các máy chủ vật lý gốc vì vậy, cần phải chuyển các VPS sang một máy chủ vật lý gốc khác. OpenVZ hỗ trợ một tiện ích để làm việc này đó là tiện ích vzmigrate. Để thực hiện việc di chuyển này cần làm các bƣớc sau:
a.Thiết lập các khoá SSH
Trƣớc hết cần thiết lập các khoá SSH để cho phép máy chủ cũ có thể truy cập vào máy chủ mới mà không yêu cầu mật khẩu, chạy các lệnh sau trên máy cũ:
[root@OpenVZ ~]# ssh-keygen -t rsa Generating public/private rsa key pair.
Enter file in which to save the key (/root/.ssh/id_rsa): Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /root/.ssh/id_rsa. Your public key has been saved in /root/.ssh/id_rsa.pub. The key fingerprint is:
74:7a:3e:7f:27:2f:42:bb:52:4c:ad:55:31:6f:79:f2 root@OpenVZ.ics.local
[root@OpenVZ ~]# cd .ssh/
[root@OpenVZ .ssh]# scp id_rsa.pub root@192.168.1.112:./id_rsa.pub The authenticity of host '192.168.1.112 (192.168.1.112)' can't be established.
RSA key fingerprint is
3f:2a:26:15:e4:37:e2:06:b8:4d:20:ee:3a:dc:c1:69.
67
Warning: Permanently added '192.168.1.112' (RSA) to the list of known hosts.
root@192.168.1.112's password:
id_rsa.pub 100% 231 0.2KB/s 00:00
Sau đó chạy đoạn lệnh sau trên máy mới:
[root@Char ~]# mkdir /root/.ssh [root@Char ~]# cd .ssh/
[root@Char .ssh]# touch authorized_keys2 [root@Char .ssh]# chmod 600 authorized_keys2
[root@Char .ssh]# cat ../id_rsa.pub >> authorized_keys2 [root@Char .ssh]# rm –f ../id_rsa.pub
Tiếp theo chạy đoạn lệnh sau trên máy cũ:
[root@OpenVZ .ssh]# ssh -2 -v root@192.168.1.112
debug1: Reading configuration data /etc/ssh/ssh_config debug1: Applying options for *
debug1: Connecting to 192.168.1.112 [192.168.1.112] port 22. debug1: Connection established.
debug1: permanently_set_uid: 0/0
debug1: identity file /root/.ssh/id_rsa type 1 debug1: identity file /root/.ssh/id_dsa type -1
debug1: Remote protocol version 2.0, remote software version OpenSSH_4.3
debug1: match: OpenSSH_4.3 pat OpenSSH*
debug1: Enabling compatibility mode for protocol 2.0 debug1: Local version string SSH-2.0-OpenSSH_3.9p1 debug1: SSH2_MSG_KEXINIT sent
debug1: SSH2_MSG_KEXINIT received
68
debug1: kex: client->server aes128-cbc hmac-md5 none debug1: SSH2_MSG_KEX_DH_GEX_REQUEST(1024<1024<8192) sent debug1: expecting SSH2_MSG_KEX_DH_GEX_GROUP
debug1: SSH2_MSG_KEX_DH_GEX_INIT sent
debug1: expecting SSH2_MSG_KEX_DH_GEX_REPLY
debug1: Host '192.168.1.112' is known and matches the RSA host key.
debug1: Found key in /root/.ssh/known_hosts:1 debug1: ssh_rsa_verify: signature correct debug1: SSH2_MSG_NEWKEYS sent
debug1: expecting SSH2_MSG_NEWKEYS debug1: SSH2_MSG_NEWKEYS received debug1: SSH2_MSG_SERVICE_REQUEST sent debug1: SSH2_MSG_SERVICE_ACCEPT received
debug1: Authentications that can continue: publickey,gssapi-with- mic,password
debug1: Next authentication method: gssapi-with-mic debug1: An invalid name was supplied
Cannot determine realm for numeric host address
debug1: An invalid name was supplied
Cannot determine realm for numeric host address
debug1: Next authentication method: publickey debug1: Offering public key: /root/.ssh/id_rsa
debug1: Authentications that can continue: publickey,gssapi-with- mic,password
debug1: Offering public key: /root/.ssh/id_rsa debug1: Server accepts key: pkalg ssh-rsa blen 149 debug1: read PEM private key done: type RSA
69
debug1: channel 0: new [client-session] debug1: Entering interactive session.
Last login: Tue Mar 23 23:30:23 2010 from 192.168.1.14 [root@Char ~]# exit
Sau khi thiết lập khoá SSH, thì lúc này có thể tiến hành di chuyển các VPS sang máy chủ mới.
b.Chuyển VPS sang máy chủ mới
Trƣớc khi chuyển sang máy chủ mới thì có 3 VPS trên máy chủ hiện tại là 101, 102 và 103:
[root@OpenVZ ~]# vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME 101 3 running 192.168.1.101 -
102 3 running 192.168.1.102 - 103 3 running - -
Để chuyển VPS 102 từ máy chủ hiện tại sang máy chủ mới có địa chỉ 192.168.1.102, làm nhƣ sau:
[root@OpenVZ .ssh]# vzmigrate 192.168.1.112 102 OPT:192.168.1.112
Starting migration of container 101 on 192.168.1.112 Preparing remote node
Initializing remote quota Syncing private
Syncing 2nd level quota Turning quota off
Cleanup
70
[root@OpenVZ ~]# vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME 101 3 running 192.168.1.101 -
103 3 running - -
Trên máy chủ mới VPS 102 đã đƣợc chuyển sang:
[root@Char ~]# vzlist
CTID NPROC STATUS IP_ADDR HOSTNAME 102 3 running 192.168.1.102 -
Để di chuyển toàn bộ VPS từ máy chủ cũ sang máy chủ mới, chạy đoạn mã sau:
for CT in $(vzlist -H -o veid); do vzmigrate --remove-area no -- keep-dst $1 $CT; done