Chuyển máy chủ vật lý gốc thành một VPS

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU HỆ THỐNG MÁY ẢO MÃ NGUỒN MỞ OPENVZ potx (Trang 82 - 87)

Dừng các dịch vụ nhƣ máy chủ web, cơ sở dữ liệu trên máy chủ để chuẩn bị cho việc di chuyển nhằm tránh việc mất mát dữ liệu. Để dễ dàng cho việc di chuyển nên tạo một VPS cơ bản dựa trên bản phân phối giống nhƣ bản phân phối mà muốn di chuyển. Bằng cách đó có thể làm giả một mẫu và sau đó sao chép tới VPS mới và sửa đổi đổi nó.

a.Tạo mới một VPS trống (lựa chọn ID của VPS là 123):

mkdir /vz/root/123 /vz/private/123

cat /etc/vz/conf/ve-vps.basic.conf-sample > /etc/vz/conf/123.conf

Dòng lệnh thứ 2 thực hiện sao chép file cấu hình cơ bản ve-vps.basic.conf- sample thành file 123.conf

b.Thực hiện việc copy dữ liệu:

Sao chép toàn bộ dữ liệu từ máy chủ vào VPS vừa tạo ra, sử dụng VPS có ID là 123, sau đó toàn bộ dữ liệu đƣợc lƣu vào thƣ mục /vz/private/123/, để thực hiện điều

71

này có nhiều cách nhƣng sẽ lựa chọn cách sử dụng lệnh rsync để chạy trên máy chủ vật lý gốc mới:

rsync -arvpz --numeric-ids --exclude=/dev --exclude=/proc -- exclude=/tmp -e ssh root@192.168.1.8:/ /vz/private/123/

Lƣu ý: có thể sao chép chính máy chủ hiện tại vào VPS, khi đó sẽ sử dụng địa chỉ IP của máy chủ hiện tại.

c.Thiết lập các tham số của VPS mới

Thêm vào file cấu hình /etc/vz/conf/123.conf dòng OSTEMPLATE=xxx với xxx là tên của bản phân phối tƣơng tự với bản phân phối đƣợc cài trên máy chủ cũ:

OSTEMPLATE="centos-4-i386-minimal"

Sau đó thêm địa chỉ IP cho VPS 123:

vzctl set 123 --ipadd 192.168.1.123 --save

d.Các điều chỉnh khác

Giữa VPS và máy chủ thực sự có một số điểm khác nhau nên cần phải điều chỉnh một số tệp tin ở trong VPS mới

 /etc/inittab

Một VPS không có tty thực sự, vì vậy cần phải vô hiệu hóa getty trong tệp tin /etc/inittab

sed -i -e '/getty/d' /vz/private/123/etc/inittab

 /etc/mtab

Tạo liên kết từ /etc/mtab tới /proc/mounts để df làm việc tốt hơn

rm -f /vz/private/123/etc/mtab

72

Vấn đề ở đây là hệ thống tệp tin gốc (/) của VPS không phải gắn vào từ chính VPS đó mà gắn vào từ hệ thống máy chủ. Xóa bỏ /etc/mtab trong VPS mà không có một bản ghi để / đƣợc gắn kết, vì thế df không hiển thị đƣợc nó. Bằng cách tạo liên kết /etc/mtab tới /proc/mounts thì chắc chắn /etc/mtab cho thấy những gì thực sự đang kết nối trong VPS. Đây không phải là cách duy nhất để sửa df, có thể điều chỉnh bằng tay bằng cách thêm một dòng vào /etc/mtab để gắn / vào và chắc chắn dòng này sẽ vẫn có sau khi khởi động lại.

 /etc/fstab

Khi không có một phân vùng đĩa thực sự trong một VPS thì /etc/fstab (hay phần lớn của nó) không còn cần thiết. Xóa các thông tin trong đó trừ các dòng /dev/pts, /proc, /sys bằng cách:

cp /vz/private/123/etc/fstab /vz/private/123/etc/fstab.old

egrep '/dev/pts|/dev/shm|/proc|/sys' /vz/private/123/etc/fstab.old > /vz/private/123/etc/fstab

 /dev

Để vzctl enter có thể làm việc, một VPS cần một số thiết bị tty trong /dev. Chúng có thể là /dev/ttyp* và /dev/ptyp* hoặc /dev/ptmx và /dev/pts. Nếu các thiết bị này chƣa tồn tại thì làm nhƣ sau:

mkdir /vz/private/123/dev/

mknod --mode 666 /vz/private/123/dev/ptmx c 5 2 mkdir /vz/private/123/dev/pts

cp -a /dev/ttyp* /dev/ptyp* /vz/private/123/dev/

Nếu sau khi khởi động VPS mà vẫn không thể thực hiện lệnh vzctl enter cần thực hiện thêm lệnh sau:

vzctl exec 123 /sbin/MAKEDEV pty vzctl exec 123 /sbin/MAKEDEV tty

73

rm -f /vz/private/123/dev/null

mknod --mode 666 /vz/private/123/dev/null c 1 3 mknod --mode 444 /vz/private/123/dev/urandom c 1 9

 /proc

Kiểm tra xem thƣ mục này đã tồn tại hay chƣa bằng cách:

ls -la /vz/private/123/ | grep proc

Nếu chƣa tồn tại, tạo mới nó:

mkdir /vz/private/123/proc

 các dịch vụ trong /etc/init.d

Một số dịch vụ của hệ thống cần phải vô hiệu hóa ví dụ nhƣ: acpid, amd, checkfs, checkroot, clock, cosolefont, hdparm, klogd, keymaps, kudzu, im_sensors, microcodectl, netplugd.

Để tắt một dịch cụ, sử dụng lệnh:

/sbin/chkconfig --del SERVICENAME

e.Vô hiệu hóa các giao diện mạng cũ

Nên vô hiệu hóa các giao diện mạng vật lý cũ từ trƣớc khi khởi động VPS. Sửa tệp tin /vz/private/{VPSID}/etc/sysconfig/network-scripts/ifcfg-ethx tại dòng ONBOOT=yes chuyển thành:

ONBOOT=no

Nếu các tệp tin /vz/private/{CTID}/etc/sysconfig/network-scripts/ifdown-venet hoặc /vz/private/{CTID}/etc/sysconfig/network-scripts/ifup-venet tồn tại, cần chắc chắn là sẽ không sử dụng chúng, 2 tệp tin này sẽ tồn tại nếu nhƣ máy chủ cũ đã từng cài OpenVZ, để không sử dụng chúng có một cách đó là đổi tên chúng:

74

mv ifup-venet SKIP.ifup-venet

f. Vô hiệu hóa udev nếu tạo thiết bị DEVNODES

Nếu đang tạo các thiết bị cho VPS với một thông báo DEVNODES trong tệp tin veid.con thì sau đó các thiết bị này có thể bị ghi đè/xóa bởi edev khi VPS khởi động. Do udev không thể nhìn thấy thiết bị từ bên trong VPS nên nó có thể vô hiệu hóa thiết bị tạo ra sau. Vì vậy nếu tồn tại DEVNODES trong tệp tin veid.conf thì sau đó phải vô hiệu hóa udev. Sửa tệp tin /vz/private/{VPSID}/etc/rc.sysinit và thêm chú thích vào mục edev nhƣ sau:

#[ -x /sbin/start_udev ] && /sbin/start_udev

Một chú ý quan trọng là trong quá trình sửa các tệp tin này phải bật quota trong tệp tin cấu hình toàn cục OpenVZ (/etc/sysconfig/vz) nếu không mọi sửa đổi sẽ không có tác dụng:

DISK_QUOTA=no

g.Khởi động VPS mới

Sau khi hoàn thành các công việc trên thử khởi động VPS mới và thử lệnh vzctl enter:

[root@localhost ~]# vzctl start 123 Starting container ...

Container is mounted

Adding IP address(es): 192.168.1.123 Setting CPU units: 1000

Configure meminfo: 65536 File resolv.conf was modified Container start in progress... [root@localhost ~]# vzctl enter 123 entered into CT 123

75

[root@localhost /]#

Một phần của tài liệu LUẬN VĂN:NGHIÊN CỨU HỆ THỐNG MÁY ẢO MÃ NGUỒN MỞ OPENVZ potx (Trang 82 - 87)

Tải bản đầy đủ (PDF)

(97 trang)