Thứ năm, 27/02/2014 | 00:00 GMT+7

Cách di chuyển server Linux Phần 1 - Chuẩn bị hệ thống

Có nhiều tình huống mà bạn có thể phải di chuyển dữ liệu và các yêu cầu hoạt động của bạn từ server này sang server khác. Bạn có thể cần triển khai các giải pháp của bạn trong một trung tâm dữ liệu mới, nâng cấp lên một máy lớn hơn hoặc chuyển đổi sang phần cứng mới hoặc nhà cung cấp VPS mới.


Dù lý do của bạn là gì, có nhiều cân nhắc khác nhau mà bạn nên thực hiện khi di chuyển từ hệ thống này sang hệ thống khác. Việc nhận các cấu hình tương đương về chức năng có thể khó khăn nếu bạn không sử dụng giải pháp quản lý cấu hình như Chef, Puppet hoặc Ansible. Bạn không chỉ cần truyền dữ liệu mà còn phải cấu hình các dịch vụ của bạn để hoạt động theo cách tương tự trên một máy mới.

Trong hướng dẫn này, ta sẽ thảo luận về cách chuẩn bị hệ thống nguồn và hệ thống đích của bạn để di chuyển. Điều này sẽ bao gồm việc để hai máy của bạn giao tiếp bằng các SSH key và một cuộc điều tra nặng nề về những thành phần nào cần được chuyển. Ta sẽ làm việc về quá trình di chuyển thực tế trong bài viết tiếp theo .

Backup


Bước đầu tiên cần thực hiện khi thực hiện bất kỳ bước nào có khả năng phá hủy là tạo bản backup mới. Chỉ vì không nên xảy ra vấn đề không nghĩa là điều gì đó bất ngờ sẽ không xảy ra. Bạn không muốn rơi vào tình huống lệnh làm hỏng thứ gì đó trên máy production hiện tại của bạn trước khi thiết bị thay thế bắt đầu hoạt động.

Có một số cách khác nhau để backup server của bạn. Lựa chọn của bạn sẽ phụ thuộc vào những lựa chọn phù hợp với kịch bản của bạn và những gì bạn thấy phù hợp nhất.

Nếu bạn có quyền truy cập vào phần cứng vật lý và không gian để backup (ổ đĩa, USB, v.v.), bạn có thể sao chép đĩa bằng bất kỳ giải pháp backup hình ảnh nào có sẵn. Một chức năng tương đương khi xử lý các máy VPS là chụp nhanh hoặc hình ảnh từ trong giao diện console .

Các tùy chọn khác thường sẽ bảo toàn dữ liệu và có lẽ một số thông tin về dịch vụ của bạn. Tất cả phụ thuộc vào cơ chế backup mà bạn muốn thực hiện. Các trang cộng đồng của ta có các bài viết về nhiều tùy chọn backup khác nhau . Chọn một cái có ý nghĩa đối với dữ liệu và hệ thống của bạn.

Khi bạn đã hoàn tất backup , bạn đã sẵn sàng để tiếp tục. Đối với phần còn lại của hướng dẫn này, ta sẽ giả định bạn đã đăng nhập vào cả hai hệ thống với quyền là user root .

Thu thập thông tin về hệ thống nguồn


Trước khi bắt đầu di chuyển, ta nên thực hiện các bước ban đầu để cài đặt hệ thống đích sao cho phù hợp với hệ thống nguồn của ta .

Ta sẽ muốn đối sánh nhiều nhất có thể giữa server hiện tại và server mà ta định chuyển sang. Nếu bạn muốn quá trình di chuyển diễn ra suôn sẻ, thì bạn không nên coi đây là cơ hội để nâng cấp lên version mới nhất hoặc thử những điều mới. Thực hiện thay đổi có thể dẫn đến sự không ổn định và các vấn đề về đường truyền.

Hầu hết các thông tin cơ bản sẽ giúp bạn quyết định hệ thống server sẽ tạo cho máy mới có thể được truy xuất bằng một uname đơn giản:

uname -r 

3.2.0-24-virtual 

Đây là version của kernel mà hệ thống hiện tại của ta đang chạy. Để làm cho mọi thứ diễn ra suôn sẻ, bạn nên cố gắng kết hợp điều đó trên hệ thống mục tiêu.

uname -m 

i686 

Đây là kiến trúc hệ thống. i686 cho biết đây là hệ thống 32-bit. Nếu chuỗi được trả về là x86_64 , điều này nghĩa là đây là hệ thống 64 bit.

Bạn cũng nên cố gắng trùng với bản phân phối và version của server nguồn của bạn . Nếu bạn không biết version phân phối mà bạn đã cài đặt trên máy nguồn, bạn có thể tìm hiểu bằng lệnh :

cat /etc/issue 

Ubuntu 12.04.2 LTS \n \l 

Bạn nên tạo server mới của bạn với các thông số tương tự nếu có thể. Trong trường hợp này, ta sẽ tạo một hệ thống 32-bit Ubuntu 12.04. Nếu có thể, ta cũng sẽ cố gắng khớp version kernel trên hệ thống mới.

Cài đặt quyền truy cập SSH key giữa server nguồn và server đích


Ta cần server của bạn có thể giao tiếp để chúng có thể truyền file . Cách dễ nhất để làm điều này là với các SSH key . Bạn có thể tìm hiểu cách cấu hình SSH key trên server Linux tại đây.

Ta muốn tạo một khóa mới trên server đích để ta có thể thêm khóa đó vào file authorized_keys của server nguồn của ta . Cách này rõ ràng hơn so với cách khác, vì sau đó server mới sẽ không có khóa bị lạc trong file authorized_keys của nó khi quá trình di chuyển hoàn tất.

Đầu tiên, trên máy đích của bạn, hãy kiểm tra xem user root của bạn chưa có SSH key (bạn phải đăng nhập với quyền root) bằng lệnh :

ls ~/.ssh 

authorized_keys 

Nếu bạn thấy các file có tên id_rsa.pubid_rsa , thì bạn đã có khóa và bạn chỉ cần chuyển chúng.

Nếu bạn không thấy những file đó, hãy tạo một cặp khóa mới bằng lệnh :

ssh-keygen -t rsa 

Nhấn “Enter” qua tất cả các dấu nhắc để chấp nhận các giá trị mặc định.

Bây giờ, hãy chuyển khóa sang server nguồn bằng lệnh :

cat ~/.ssh/id_rsa.pub | ssh other_server_ip "cat >> ~/.ssh/authorized_keys" 

Đến đây bạn có thể SSH tự do vào server nguồn của bạn từ hệ thống đích bằng lệnh :

ssh other_server_ip 

Bạn sẽ không được yêu cầu nhập password nếu bạn đã cấu hình đúng.

Tạo một danh sách các yêu cầu


Đây thực sự là phần đầu tiên bạn sẽ thực hiện phân tích sâu về hệ thống và các yêu cầu của bạn .

Trong quá trình hoạt động, các yêu cầu phần mềm của bạn có thể thay đổi. Đôi khi các server cũ có một số dịch vụ và phần mềm cần thiết tại một thời điểm, nhưng đã được thay thế.

Mặc dù các dịch vụ không cần thiết nên được tắt và gỡ cài đặt nếu hoàn toàn không cần thiết, điều này không phải lúc nào cũng xảy ra. Bạn cần khám phá những dịch vụ nào đang được sử dụng trên server nguồn của bạn và sau đó quyết định xem những dịch vụ đó có tồn tại trên server mới của bạn hay không.

Cách bạn khám phá các dịch vụ và cấp chạy phần lớn phụ thuộc vào loại hệ thống “init” mà server của bạn sử dụng. Hệ thống init chịu trách nhiệm khởi động và dừng các dịch vụ, theo lệnh của user hoặc tự động.

Khám phá các dịch vụ và cấp độ chạy trên Server System V


Hệ thống V là một trong những hệ thống init cũ vẫn được sử dụng trên nhiều server hiện nay. Ubuntu đã cố gắng chuyển sang hệ thống Upstart init và trong tương lai có thể sẽ chuyển sang hệ thống Systemd init.

Hiện tại, cả file init kiểu System V và file init Upstart mới hơn đều có thể được tìm thấy trên cùng một hệ thống, nghĩa là bạn sẽ có nhiều nơi để xem hơn. Các hệ thống khác cũng sử dụng Hệ thống V. Bạn có thể xem server của bạn có sử dụng Hệ thống V hay không bằng lệnh :

which service 

/usr/sbin/service 

Nếu lệnh trả về một đường dẫn hệ thống, như đã làm ở trên, bạn có Hệ thống V trên hệ thống của bạn .

Bạn có thể biết dịch vụ nào hiện đang chạy bằng lệnh vào:

service --status-all 

 [ ? ]  acpid  [ ? ]  anacron  [ + ]  apache2  [ ? ]  atd  [ - ]  bootlogd  [ ? ]  console-setup  [ ? ]  cron  [ ? ]  cryptdisks  . . . 

Điều này sẽ liệt kê tất cả các dịch vụ mà hệ thống System-V init biết về. Dấu “+” nghĩa là dịch vụ được bắt đầu, dấu “-” nghĩa là dịch vụ đã dừng và dấu “?” nghĩa là System-V không biết trạng thái của dịch vụ.

Nếu System-V không biết trạng thái của dịch vụ, có thể nó được điều khiển bởi một hệ thống init thay thế. Trên hệ thống Ubuntu, đây thường là Upstart.

Ngoài việc tìm ra dịch vụ nào đang chạy hiện tại, một thông tin hữu ích khác cần có là cấp độ chạy của dịch vụ đang hoạt động. Runlevels quy định dịch vụ nào nên được cung cấp khi server ở các trạng thái khác nhau. Bạn có thể cần trùng với cấu hình của server nguồn trên hệ thống mới.

Bạn có thể khám phá các runlevel mà mỗi dịch vụ sẽ hoạt động để sử dụng một số công cụ. Một cách là thông qua các công cụ như chkconfig hoặc sysv-rc-conf .

Trên hệ thống Ubuntu hoặc Debian, bạn có thể cài đặt và sử dụng chkconfig để kiểm tra dịch vụ System V nào khả dụng ở các cấp chạy khác nhau như thế này. Hầu hết các hệ thống dựa trên RHEL đã được cài đặt phần mềm này:

apt-get update apt-get install chkconfig chkconfig --list 

acpid                     0:off  1:off  2:off  3:off  4:off  5:off  6:off anacron                   0:off  1:off  2:off  3:off  4:off  5:off  6:off apache2                   0:off  1:off  2:on   3:on   4:on   5:on   6:off atd                       0:off  1:off  2:off  3:off  4:off  5:off  6:off bootlogd                  0:off  1:off  2:off  3:off  4:off  5:off  6:off console-setup             0:off  1:off  2:off  3:off  4:off  5:off  6:off cron                      0:off  1:off  2:off  3:off  4:off  5:off  6:off cryptdisks                0:on   1:off  2:off  3:off  4:off  5:off  6:off cryptdisks-early          0:on   1:off  2:off  3:off  4:off  5:off  6:off . . . 

Một giải pháp thay thế khác là sysv-rc-conf , có thể được cài đặt và chạy như sau:

apt-get update apt-get install sysv-rc-conf sysv-rc-conf --list 

acpid        anacron      apache2      0:off  1:off   2:on    3:on    4:on    5:on    6:off atd          bootlogd     console-setu cron         cryptdisks   0:on   6:on cryptdisks-e 0:on   6:on . . . 

Nếu bạn muốn kiểm tra thủ công thay vì sử dụng công cụ, bạn có thể thực hiện việc đó bằng cách kiểm tra một số folder có dạng /etc/rc*.d/ . Dấu hoa thị sẽ được thay thế bằng số của cấp chạy.

Ví dụ: để xem những dịch vụ nào được System V kích hoạt trong runlevel 2, bạn có thể kiểm tra các file ở đó:

cd /etc/rc2.d ls -l 

total 4 -rw-r--r-- 1 root root 677 Jul 26  2012 README lrwxrwxrwx 1 root root  18 Dec 28  2012 S20php5-fpm -> ../init.d/php5-fpm lrwxrwxrwx 1 root root  15 Apr 26  2012 S50rsync -> ../init.d/rsync lrwxrwxrwx 1 root root  14 Jun 21  2013 S75sudo -> ../init.d/sudo lrwxrwxrwx 1 root root  17 Dec 28  2012 S91apache2 -> ../init.d/apache2 . . . 

Đây là các liên kết đến file cấu hình nằm trong /etc/init.d/ . Mỗi liên kết bắt đầu bằng chữ “S” nghĩa là nó được sử dụng để bắt đầu một dịch vụ. Các tập lệnh bắt đầu bằng ký tự “K” sẽ tắt các dịch vụ ở cấp chạy đó.

Khám phá các dịch vụ và cấp độ chạy trên server khởi động


Ubuntu và các server dựa trên Ubuntu là những server duy nhất thực hiện hệ thống Upstart init theo mặc định. Chúng thường được sử dụng làm hệ thống init chính, với Hệ thống V được cấu hình cho các dịch vụ kế thừa.

Để xem server của bạn có hệ thống khởi động lại hay không, hãy nhập:

which initctl 

/sbin/initctl 

Nếu bạn nhận được một đường dẫn đến file thực thi như ta đã làm ở trên, thì server của bạn có khả năng Upstart và bạn nên điều tra dịch vụ nào được kiểm soát bởi Upstart.

Bạn có thể xem dịch vụ nào được khởi động bởi Upstart bằng lệnh :

initctl list 

mountall-net stop/waiting passwd stop/waiting rc stop/waiting rsyslog start/running, process 482 tty4 start/running, process 728 udev start/running, process 354 upstart-udev-bridge start/running, process 350 ureadahead-other stop/waiting . . . 

Điều này sẽ cho bạn biết trạng thái hiện tại của tất cả các dịch vụ được quản lý Upstart. Bạn có thể biết dịch vụ nào đang được chạy hiện tại và có thể xem liệu có dịch vụ nào cung cấp cùng chức năng mà dịch vụ đã tiếp quản cho một dịch vụ kế thừa không còn được sử dụng hay không.

, bạn nên làm quen với những dịch vụ được cho là có sẵn ở mỗi cấp chạy.

Bạn có thể thực hiện việc này với lệnh initctl bằng lệnh :

initctl show-config 

mountall-net   start on net-device-up passwd   start on filesystem rc   emits deconfiguring-networking   emits unmounted-remote-filesystems   start on runlevel [0123456]   stop on runlevel [!$RUNLEVEL] rsyslog   start on filesystem   stop on runlevel [06]   . . . 

Điều này đưa ra rất nhiều thông tin cấu hình cho mỗi dịch vụ. Phần cần tìm là thông số kỹ thuật của runlevel.

Nếu bạn muốn thu thập thông tin này theo cách thủ công, bạn có thể xem các file nằm trong folder /etc/init (lưu ý việc bỏ qua “.d” sau “init” ở đây).

Bên trong, bạn sẽ tìm thấy một số file cấu hình. Trong các file này, có các thông số kỹ thuật cấp chạy được cung cấp như sau:

start on runlevel [2345] stop on runlevel [!2345] 

Bạn nên có một ý tưởng tốt về các cách khác nhau để khám phá các dịch vụ Upstart và runlevel.

Khám phá các dịch vụ và cấp độ chạy trên Server Systemd


Một phong cách init mới hơn đang ngày càng được các bản phân phối áp dụng là hệ thống init systemd.

Systemd khá khác biệt so với các loại hệ thống init khác, nhưng cực kỳ mạnh mẽ. Bạn có thể tìm hiểu về các dịch vụ đang chạy bằng lệnh :

systemctl list-units -t service 

UNIT                                           LOAD   ACTIVE SUB     DESCRIPTION atd.service                                    loaded active running ATD daemon avahi-daemon.service                           loaded active running Avahi mDNS/DNS-SD Stack colord.service                                 loaded active running Manage, Install and Generate Color Profiles cups.service                                   loaded active running CUPS Printing Service dbus.service                                   loaded active running D-Bus System Message Bus dcron.service                                  loaded active running Periodic Command Scheduler dkms.service                                   loaded active exited  Dynamic Kernel Modules System . . . 

Systemd không sao chép chính xác khái niệm runlevels của các hệ thống init khác. Thay vào đó, nó thực hiện khái niệm "mục tiêu". Trong khi các hệ thống với hệ thống init truyền thống chỉ có thể ở một cấp độ chạy tại một thời điểm, một server sử dụng systemd có thể đạt được nhiều mục tiêu cùng một lúc.

Do đó, việc tìm ra những dịch vụ nào đang hoạt động sẽ khó hơn một chút.

Bạn có thể xem mục tiêu nào hiện đang hoạt động bằng lệnh :

systemctl list-units -t target 

UNIT                LOAD   ACTIVE SUB    DESCRIPTION basic.target        loaded active active Basic System cryptsetup.target   loaded active active Encrypted Volumes getty.target        loaded active active Login Prompts graphical.target    loaded active active Graphical Interface local-fs-pre.target loaded active active Local File Systems (Pre) local-fs.target     loaded active active Local File Systems . . . 

Bạn có thể liệt kê tất cả các mục tiêu có sẵn bằng lệnh :

systemctl list-unit-files -t target 

UNIT FILE                 STATE    basic.target              static   bluetooth.target          static   cryptsetup.target         static   ctrl-alt-del.target       disabled default.target            disabled emergency.target          static   final.target              static   getty.target              static   graphical.target          disabled halt.target               disabled . . . 

Từ đây, ta có thể tìm ra những dịch vụ nào được liên kết với từng mục tiêu. Các mục tiêu có thể có các dịch vụ hoặc các mục tiêu khác dưới dạng phụ thuộc, vì vậy, ta có thể xem các policy mà mỗi mục tiêu triển khai bằng lệnh :

systemctl list-dependencies target_name.target 

Ví dụ, bạn có thể nhập thông tin như sau:

systemctl list-dependencies multi-user.target 

multi-user.target ├─atd.service ├─avahi-daemon.service ├─cups.path ├─dbus.service ├─dcron.service ├─dkms.service ├─gpm.service . . . 

Thao tác này sẽ liệt kê cây phụ thuộc của mục tiêu đó, cung cấp cho bạn danh sách các dịch vụ và các mục tiêu khác sẽ bắt đầu khi đạt được mục tiêu đó.

Kiểm tra kỹ các dịch vụ thông qua các phương pháp khác


Trong khi hầu hết các dịch vụ sẽ được cấu hình thông qua hệ thống init, có thể có một số khu vực mà một quá trình hoặc dịch vụ sẽ vượt qua các vết nứt và được kiểm soát độc lập.

Ta có thể cố gắng tìm các dịch vụ và quy trình khác này bằng cách xem xét các tác dụng phụ của các dịch vụ này. Trong hầu hết các trường hợp, các dịch vụ giao tiếp với nhau hoặc với các thực thể bên ngoài theo một cách nào đó. Chỉ có một số cách cụ thể mà các dịch vụ có thể giao tiếp và việc kiểm tra các giao diện đó là một cách tốt để phát hiện các dịch vụ khác.

Một công cụ mà ta có thể sử dụng để khám phá các cổng mạng và socket Unix đang được các tiến trình sử dụng để giao tiếp là netstat . Ta có thể đưa ra một lệnh như thế này để xem tổng quan về một số dịch vụ của ta :

netstat -nlp 

Active Internet connections (only servers) Proto Recv-Q Send-Q Local Address           Foreign Address         State       PID/Program name tcp        0      0 127.0.0.1:3306          0.0.0.0:*               LISTEN      762/mysqld       tcp        0      0 0.0.0.0:80              0.0.0.0:*               LISTEN      832/apache2      tcp        0      0 0.0.0.0:22              0.0.0.0:*               LISTEN      918/sshd         tcp        0      0 127.0.0.1:9000          0.0.0.0:*               LISTEN      799/php-fpm.conf) tcp6       0      0 :::22                   :::*                    LISTEN      918/sshd         Active UNIX domain sockets (only servers) Proto RefCnt Flags       Type       State         I-Node   PID/Program name    Path unix  2      [ ACC ]     STREAM     LISTENING     1526     1/init              @/com/ubuntu/upstart unix  2      [ ACC ]     SEQPACKET  LISTENING     1598     354/udevd           /run/udev/control unix  2      [ ACC ]     STREAM     LISTENING     6982     480/dbus-daemon     /var/run/dbus/system_bus_socket unix  2      [ ACC ]     STREAM     LISTENING     8378     762/mysqld          /var/run/mysqld/mysqld.sock unix  2      [ ACC ]     STREAM     LISTENING     1987     746/acpid           /var/run/acpid.socket 

Các số cổng trong phần đầu tiên được liên kết với các chương trình ở ngoài cùng bên phải. Tương tự, phần dưới cùng tập trung vào các socket Unix đang được các chương trình sử dụng.

Nếu bạn thấy các dịch vụ ở đây mà bạn không có thông tin thông qua hệ thống init, bạn sẽ phải tìm hiểu lý do tại sao lại như vậy và loại thông tin nào bạn cần thu thập về dịch vụ đó.

Bạn có thể nhận được thông tin tương tự về các dịch vụ cổng đang cung cấp bằng cách sử dụng lệnh lsof :

lsof -nPi 

COMMAND   PID     USER   FD   TYPE DEVICE SIZE/OFF NODE NAME mysqld    762    mysql   10u  IPv4   8377      0t0  TCP 127.0.0.1:3306 (LISTEN) php5-fpm  799     root    6u  IPv4   8195      0t0  TCP 127.0.0.1:9000 (LISTEN) php5-fpm  800 www-data    0u  IPv4   8195      0t0  TCP 127.0.0.1:9000 (LISTEN) php5-fpm  801 www-data    0u  IPv4   8195      0t0  TCP 127.0.0.1:9000 (LISTEN) php5-fpm  802 www-data    0u  IPv4   8195      0t0  TCP 127.0.0.1:9000 (LISTEN) php5-fpm  803 www-data    0u  IPv4   8195      0t0  TCP 127.0.0.1:9000 (LISTEN) apache2   832     root    3u  IPv4   8210      0t0  TCP *:80 (LISTEN) sshd      918     root    3r  IPv4   7738      0t0  TCP *:22 (LISTEN) . . . 

Bạn có thể nhận được một số thông tin tuyệt vời từ lệnh ss về những quy trình đang sử dụng cổng và socket nào:

ss -nlpaxtudw 

Netid  State      Recv-Q Send-Q   Local Address:Port     Peer Address:Port  u_str  LISTEN     0      0      @/com/ubuntu/upstart 1526                * 0     users:(("init",1,7)) u_str  ESTAB      0      0      @/com/ubuntu/upstart 1589                * 0     users:(("init",1,10)) u_str  ESTAB      0      0                    * 1694                * 0     users:(("dbus-daemon",480,6)) u_str  ESTAB      0      0                    * 1695                * 0     users:(("dbus-daemon",480,7)) u_str  ESTAB      0      0                    * 1803                * 0 

Thu thập các version gói


Sau tất cả khám phá đó, bạn nên có một ý tưởng tốt về những dịch vụ nào đang chạy trên máy nguồn của bạn mà bạn nên triển khai trên server mục tiêu của bạn .

Bạn nên có một danh sách các dịch vụ mà bạn biết rằng bạn cần phải thực hiện. Để quá trình chuyển đổi diễn ra suôn sẻ, điều quan trọng là phải cố gắng khớp các version khi nào có thể.

Rõ ràng là bạn sẽ không thể xem qua từng gói cài đặt trên hệ thống nguồn và cố gắng sao chép nó trên hệ thống mới, nhưng bạn nên kiểm tra các thành phần phần mềm quan trọng đối với nhu cầu của bạn và cố gắng tìm số version .

Bạn có thể cố gắng lấy số version từ chính phần mềm, đôi khi bằng cách chuyển cờ -v hoặc --version cho các lệnh, nhưng thông thường điều này dễ thực hiện hơn thông qua trình quản lý gói của bạn. Nếu bạn đang sử dụng hệ thống dựa trên Ubuntu / Debian, bạn có thể xem version gói nào được cài đặt từ trình quản lý gói bằng lệnh :

dpkg -l | grep package_name 

Thay vào đó, nếu bạn đang sử dụng hệ thống dựa trên RHEL, bạn có thể sử dụng lệnh này để kiểm tra version đã cài đặt thay thế.

rpm -qa | grep package_name 

Điều này sẽ cung cấp cho bạn một ý tưởng tốt về version chương trình bạn đang muốn cài đặt.

Giữ danh sách số version của các thành phần quan trọng mà bạn muốn cài đặt. Ta sẽ cố gắng lấy những thứ này trên hệ thống đích.

Bước tiếp theo


Đến đây bạn nên có một ý tưởng tốt về những quy trình và dịch vụ nào trên server nguồn của bạn cần được chuyển sang máy mới của bạn. Bạn cũng nên hoàn thành các bước sơ bộ để cho phép hai version server của bạn giao tiếp với nhau.

Cơ sở cho việc di chuyển của bạn hiện đã hoàn tất. Đến đây bạn có thể bắt đầu quá trình di chuyển trong bài viết tiếp theo với một ý tưởng tốt về những gì bạn cần làm.


Tags:

Các tin liên quan

Cách di chuyển server Linux Phần 2 - Truyền dữ liệu cốt lõi
2014-02-27
Cách di chuyển server Linux Phần 3 - Các bước cuối cùng
2014-02-27
Cách cài đặt và sử dụng LinuxBrew trên VPS Linux
2014-02-14
cách sử dụng role và môi trường trong Chef để kiểm soát cấu hình server
2014-02-04
Cách cài đặt Chef Server, Workstation và Client trên Phiên bản VPS Ubuntu
2014-01-30
Giới thiệu về Chuyển hướng I / O Linux
2014-01-23
Giới thiệu về Chuyển hướng I / O Linux
2014-01-23
Cách thiết lập server email Postfix với Dovecot: Dynamic Maildirs và LMTP
2013-12-17
Cách xem và cấu hình log Linux trên Ubuntu và Centos
2013-12-17
Cách cài đặt Linux Socket Monitor (LSM) trên CentOS 6.4
2013-11-26