Product SiteDocumentation Site

3.2. Làm thể nào để di cư

Nhằm đảm bảo các service hoạt động liên tục, mỗi quá trình di cư máy tính cần được lên kịch bản và thực hiện theo kế hoạch. Đây là nguyên tắc áp dụng cho khi sử dụng bất kỳ hệ điều hành nào.

3.2.1. Dò tìm và Định danh cách dịch vụ

Nghe thì nó có vẻ đơn giản, sau đây là các bước cần thiết. Một quản trị viên thực thụ cần biết chính xác vai trò chính của từng server, nhưng các vai trò có thể thay đổi và đôi khi người dùng kinh nghiệm có thể đã cài đặt các dịch vụ không chính thống. Việc biết được sự tồn tại của chúng ít ra giúp cho bạn quyết định làm gì với nó hơn là xóa một cách tùy tiện.
Vì mục đích này, nó thực sự sáng suốt để thông báo tới người dùng của bạn trong dự án trước khi di cư server. Để họ tham gia vào dự án, nó có thể hữu ích cho việc cài đặt các phần mềm phổ biến trên desktop của họ trước khi di cư, những cái mà họ có thể gặp lần nữa sau khi chuyển sang Debian; Libre Office và bộ phần mềm Mozilla là một số ví dụ điển hình.

3.2.1.1. Mạng và Tiến trình

Chương trình nmap (với gói cùng tên) sẽ nhanh chóng định danh dịch vụ mạng được duy trì bởi một máy tính đã kết nối mạng mà không cần đăng nhập vào nó. Đơn giản chỉ là gọi lệnh sau đây trên một máy tính khác cùng mạng đã kết nối:
$ nmap mirwiz
Starting Nmap 7.40 ( https://nmap.org ) at 2017-06-06 14:41 CEST
Nmap scan report for mirwiz (192.168.1.104)
Host is up (0.00062s latency).
Not shown: 992 closed ports
PORT     STATE SERVICE
22/tcp   open  ssh
25/tcp   open  smtp
80/tcp   open  http
111/tcp  open  rpcbind
139/tcp  open  netbios-ssn
445/tcp  open  microsoft-ds
5666/tcp open  nrpe
9999/tcp open  abyss

Nmap done: 1 IP address (1 host up) scanned in 0.06 seconds
Nếu như server là một máy tính Unix cung cấp cho người dùng tiện ích shell, nó thực sự thú vị để xác định các tiến trình được thực thi dưới background trong sự vắng mặt chủ sở hữu chúng. Lệnh ps auxw hiển thị một danh sách của các tiến trình với định danh người dùng của chúng. Bằng sự xem xét các thông tin phản hồi từ đầu ra của lệnh who, chúng ta sẽ thấy một danh sách các người dùng và thời điểm đã đăng nhập, qua đó có thể xác định kẻ mạo danh hoặc các dịch vụ không xác định hoặc các chương trình đang chạy dưới nền. Việc tìm kiếm ở crontabs (bảng danh sách các hành động được lập lịch tự động thực hiện bởi người dùng) thường sẽ cung cấp các thông tin đang quan tâm trên về các chức năng được thực hiện bởi máy chủ (giải thích đầy đủ của cron xem thêm tại Phần 9.7, “Scheduling Tasks with cron and atd).
Trong bất cứ trường hợp nào, nó cần thiết để sao lưu các servers của bạn: điều này cho phép khôi phục thông tin theo hoàn cảnh cụ thể, khi người dùng báo cáo các vấn đề trong quá trình di cư.

3.2.2. Quá trình sao lưu cấu hình

Nó là cách khôn ngoan để lưu giữ các cấu hình của bất kỳ dịch vụ xác định nào phục vụ cho việc cài đặt tương tự trên server cập nhật. Tối thiểu là việc tạo ra các bản sao của các tệp tin cấu hình.
Với các máy tính Unix, các tệp tin cấu hình thường được tìm thấy trong /etc/, nhưng chúng có thể được lưu trong một thư mục con của /usr/local/. Đây là trường hợp khi một chương trình đã cài đặt từ mã nguồn, thay vì một gói. Trong một số trường hợp, người ta cũng có thể tìm thấy chúng trong /opt/.
Với các service quản lý dữ liệu (như databases chẳng hạn), thường đưọc khuyến cáo export dữ liệu sang một định dạng chuẩn sao cho dễ dàng được import bởi các chương trình mới. Chẳng hạn một định dạng hay dùng dạng văn bản hay tài liệu; nó có thể chấp nhận được, ví dụ như: một tập tin SQL hay một tập tin LDIF dành cho LDAP server.
Sao lưu cơ sở dữ liệu

Hình 3.2. Sao lưu cơ sở dữ liệu

Rõ ràng là từng phần mềm máy chủ là khác nhau, và không thể để mô tả toàn bộ các trường hợp một cách chi tiết. Để xác định khả năng export của các thành phần (hay nó cũng có khả năng tái import) cần so sánh tài liệu đã có với phần mềm mới và những điều này sẽ yêu cầu thực hiện bằng tay. Trong cuốn sách này sẽ làm sáng tỏ các cấu hình của các chương trình chính trên Linux server.

3.2.3. Tiếp quản các máy chủ Debian hiện có

Để đạt hiểu quả trong việc tiếp quản các thành phần đang nắm giữ của nó, cần một ai đó có thể phân tích một máy chủ thực sự đang chạy với Debian.
Tệp tin đầu tiên nên xem là /etc/debian_version, nó thường chứa phiên bản của hệ thống Debian hiện tại (nó là một phần của gói base-files). Nếu nó chỉ rõ codename/sid, điều đó có nghĩa là hệ thống đã được cập nhật với các gói tin kéo về từ một bản phân phối đang phát triển (hay một bản đang thử nghiệm hoặc không chính thức).
chương trình apt-show-versions (với gói Debian cùng tên) kiểm tra danh sách các gói tin đã cài đặt và xác định phiên bản hiện có. aptitude cũng có thể được sử dụng cho các nhiệm vụ trên, kể cả trong một số các hệ thống kiểu cũ.
Lướt qua tệp tin /etc/apt/sources.list (và thư mục /etc/apt/sources.list.d/) có thể thấy các gói tin Debian đã cài đặt đến từ đâu.
Tệp tin sources.list thường chỉ ra các thông tin tốt: phần lớn được quản trị viên năm giữ, một số ít chú thích, danh sách của các nguồn APT đã được sử dụng. Nhưng bạn không nên bỏ quên các nguồn đã sử dụng trong quá khứ mà có thể đã bị xóa, và các gói mặc định tải về từ Internet được cài đặt bằng tay (với lệnh dpkg). Trong trường hợp này, máy tính đang bị nhầm lẫn vào sự xuất hiện của nó trong kho phần mềm chuẩn của Debian. Đây là lý do tại sao bạn nên chú ý đến bất kỳ dấu hiệu nào cho thấy sự có mặt của các gói bên ngoài (sự xuất hiện của tệp deb trong thư mục bất thường, số phiên bản gói với một hậu tố đặc biệt chỉ ra rằng nó có nguồn gốc từ bên ngoài dự án Debian, chẳng hạn như ubuntu hoặc lmde,vân vân.)
Tương tự, việc phân tích nội dung thư mục /usr/local/ cũng đáng quan tâm, cái mà mục đích của nó là chứa các chương trình đã biên dịch và cài đặt bình thường. Danh sách các phần mềm đã cài đặt theo kiểu này có thể để đào tạo, từ đây đặt ra các câu hỏi về lý do tại sao không sử dụng các gói của Debian nếu như nó tồn tại.

3.2.4. Cài đặt Debian

Một khi là tất cả các thông tin cần thiết trên server hiện tại đã được biết, chúng ta có thể tắt máy và bắt đầu quá trình cài đặt Debian trên nó.
Để lựa chọn được phiên bản thích hợp, chúng ta phải biết được kiến trúc của phần cứng. Với các máy tính hiện nay, chúng hầu như là amd64 (các máy tính cũ thường là i386). Trong trường hợp khác, chúng ta có thể thu hẹp các khả năng tùy theo các hệ thống đã sử dụng trước đó.
Bảng 3.1 không nhắm tới mọi khía cạnh, nhưng có thể khá hữu ích. Trong bất kỳ trường hợp nào, các tài liệu thông thường dành cho máy tính là các nguồn đáng tin cậy để tìm kiếm thông tin này.

Bảng 3.1. Hệ điều hành và kiến trúc tương xứng

Hệ điều hànhKiến trúc
DEC Unix (OSF/1)alpha, mipsel
HP Unixia64, hppa
IBM AIXpowerpc
Irixmips
OS Xamd64, powerpc, i386
z/OS, MVSs390x, s390
Solaris, SunOSsparc, i386, m68k
Ultrixmips
VMSalpha
Windows 95/98/MEi386
Windows NT/2000i386, alpha, ia64, mipsel
Windows XP / Windows Server 2008i386, amd64, ia64
Windows RTarmel, armhf, arm64
Windows Vista / Windows 7-8-10i386, amd64

3.2.5. Quá trình cài đặt và cấu hình các dịch vụ đã lựa chọn

Khi Debian đã được cài đặt, chúng ta phải cài đặt và cấu hình từng cái một cho tất cả dịch vụ mà máy tính cần phải có. Các cấu hình mới phải được xem xét trước khi đưa vào để quá trình chuyển đổi được trơn tru. Mọi thông tin đã thu thập được trong hai bước trước sẽ hữu ích để hoàn thành phần này.
Cài đặt các dịch vụ đã lựa chọn

Hình 3.3. Cài đặt các dịch vụ đã lựa chọn

Chú ý, trước khi chuyển hoàn toàn sang phần thực hành, bạn nên đọc các phần còn lại của cuốn sách này. Sau đó bạn sẽ có một hiểu biết rộng hơn về làm sao để cấu hình được các dịch vụ như mong đợi.