Trả lời nhanh: Máy ảo là một máy tính hoàn chỉnh được tạo bằng phần mềm: có CPU, RAM, ổ đĩa và card mạng riêng, chạy hệ điều hành riêng, nhưng tất cả đều là phần chia ra từ một máy vật lý. Doanh nghiệp dùng nó để gom nhiều máy chủ cũ vào một máy mới, để tách các dịch vụ khỏi nhau, và để khôi phục nhanh khi có sự cố.
Đây là khái niệm nền của mọi thứ trong hạ tầng hiện đại, và cũng là thứ dễ hiểu sai theo hướng quá đơn giản. Bài này giải thích máy ảo thực sự là gì, những việc nó giải quyết tốt, những việc nó không hợp, và cách cấp tài nguyên cho đúng.
Máy ảo thực sự là gì
Bên trong, một máy ảo là hai thứ: một tệp cấu hình mô tả nó có bao nhiêu lõi, bao nhiêu RAM, card mạng nối vào đâu, và một hoặc vài tệp đĩa chứa toàn bộ nội dung ổ cứng của nó.
Khi bạn bấm bật, lớp ảo hóa dựng ra một môi trường trông giống hệt một máy tính thật, rồi nạp hệ điều hành từ tệp đĩa đó. Hệ điều hành khách không biết mình đang chạy trong máy ảo, nó thấy CPU, thấy ổ cứng, thấy card mạng như bình thường.
Hệ quả rất mạnh của việc máy ảo chỉ là vài tệp:
- Sao chép một máy chủ nghĩa là sao chép tệp, mất vài phút.
- Chuyển sang máy vật lý khác cũng chỉ là chuyển tệp.
- Khôi phục sau sự cố là phục hồi tệp rồi bật lên, không phải cài lại hệ điều hành và cấu hình từ đầu.
- Chụp lại trạng thái trước khi cập nhật, hỏng thì quay lui trong ba mươi giây.
Doanh nghiệp dùng vào việc gì
Bốn nhóm việc chiếm phần lớn các trường hợp thực tế.
Gom nhiều máy chủ cũ vào một máy mới. Một máy chủ đời mới thừa sức chạy công việc của năm sáu máy chủ đời cũ. Gom lại tiết kiệm điện, tiết kiệm chỗ trong tủ rack và giảm số thiết bị phải bảo trì.
Tách các dịch vụ khỏi nhau. Máy chủ web, cơ sở dữ liệu và phần mềm kế toán mỗi thứ một máy ảo. Một cái hỏng hay bị chiếm quyền không kéo theo cái còn lại, và mỗi cái cập nhật theo lịch riêng.
Môi trường kiểm thử. Dựng bản sao của hệ thống thật để thử bản cập nhật trước khi áp lên môi trường chạy thật. Thử xong xóa đi, không tốn phần cứng riêng.
Chạy phần mềm cũ. Phần mềm chuyên ngành chỉ chạy trên hệ điều hành đời trước vẫn sống được trong một máy ảo, trong khi phần còn lại của công ty đã lên bản mới.
Máy ảo và container khác nhau chỗ nào
Hai thứ hay bị so sánh như thể thay thế được cho nhau, thực ra chúng giải quyết hai bài toán khác nhau.
Máy ảo có nhân hệ điều hành riêng. Nặng hơn, khởi động lâu hơn, nhưng cách ly chắc và chạy được mọi hệ điều hành kể cả Windows.
Container dùng chung nhân với máy chủ. Khởi động trong vài giây, tốn rất ít RAM, nhưng chỉ chạy được Linux và mức cách ly thấp hơn.
Quy tắc chọn thực dụng: cần Windows, cần cách ly chắc, hoặc cần một hệ điều hành hoàn chỉnh thì dùng máy ảo. Các dịch vụ Linux nội bộ chạy nhiều bản giống nhau thì dùng container để tiết kiệm.
Trong thực tế nhiều nơi dùng cả hai: máy ảo làm ranh giới lớn, rồi chạy container bên trong máy ảo đó.
Cấp bao nhiêu tài nguyên là vừa
Sai lầm phổ biến nhất là cấp thừa vì nghĩ nhiều hơn thì nhanh hơn.
Lõi CPU. Bắt đầu bằng hai lõi cho dịch vụ thông thường, tăng khi đo thấy thiếu. Máy ảo nhiều lõi cần lớp ảo hóa xếp lịch cho tất cả các lõi đó cùng lúc, nên trên một máy chủ bận, máy ảo tám lõi đôi khi chờ lâu hơn máy ảo hai lõi.
RAM. Đây là tài nguyên nên rộng tay hơn CPU, vì hệ điều hành dùng phần dư làm bộ đệm. Nhưng đừng cấp tổng RAM của các máy ảo vượt quá RAM vật lý nếu chúng đều chạy tải thật.
Đĩa. Dùng kiểu cấp phát mỏng để không chiếm chỗ trước, nhưng phải theo dõi dung lượng thật của kho lưu trữ. Kho đầy trong khi các máy ảo tưởng còn chỗ là tình huống gây hỏng dữ liệu.
Trình điều khiển. Luôn cài bộ trình điều khiển bán ảo hóa cho đĩa và mạng. Đây là việc bắt buộc, bỏ qua là máy ảo chậm hơn nhiều lần mà không rõ lý do.
Những gì máy ảo không giải quyết
Cần thực tế về giới hạn để không chủ quan.
- Không thay được sao lưu. Máy chủ vật lý hỏng ổ là mọi máy ảo trên đó biến mất cùng lúc. Ảnh chụp trạng thái nằm cùng kho nên cũng mất theo.
- Không cách ly về hiệu năng. Một máy ảo chạy tác vụ nặng làm chậm các máy ảo bên cạnh. Cần đặt giới hạn tài nguyên cho từng máy.
- Không giảm chi phí giấy phép. Windows Server và cơ sở dữ liệu vẫn tính theo lõi vật lý của máy chủ bên dưới.
- Không tự làm hệ thống an toàn hơn. Máy ảo vẫn cần vá lỗi, vẫn cần tường lửa, vẫn cần mật khẩu mạnh như máy thật.
Bảng cấp tài nguyên và sai lầm hay gặp
| Tài nguyên | Sai lầm hay gặp | Cách làm đúng |
|---|---|---|
| Nhân xử lý | Cấp thật nhiều cho chắc | Bắt đầu ở mức thấp, tăng khi thấy thiếu. Cấp thừa làm máy ảo phải chờ lâu hơn |
| Bộ nhớ | Cấp bằng nhau cho mọi máy ảo | Cấp theo nhu cầu thật của từng máy, đo trong một tuần rồi điều chỉnh |
| Ổ đĩa | Cấp rất rộng ngay từ đầu | Cấp vừa đủ, mở rộng khi cần. Thu nhỏ lại khó hơn mở rộng nhiều |
Cấp thừa nhân xử lý là hiểu nhầm phổ biến nhất. Máy ảo cần đủ số nhân rảnh cùng một lúc mới chạy được, nên cấp bốn nhân cho công việc chỉ cần một khiến nó phải xếp hàng lâu hơn.
Máy ảo và vùng chứa, chọn cái nào
- Máy ảo khi bạn cần một hệ điều hành hoàn chỉnh, cần mức cách ly cao, hoặc chạy phần mềm đòi hỏi cấu hình hệ thống riêng.
- Vùng chứa khi bạn chạy nhiều dịch vụ nhỏ cùng loại, cần khởi động nhanh và tiết kiệm tài nguyên.
- Thực tế là phần lớn hệ thống dùng cả hai: máy ảo làm nền, vùng chứa chạy bên trong máy ảo đó.
Bốn thứ máy ảo không thay thế được
# May ao KHONG thay the duoc: # 1. Ban sao luu# May chu vat ly hong la moi may ao tren do cung dung.# Anh chup trang thai nam cung cum dia, khong tinh la sao luu. # 2. Ke hoach du phong khi mat ca may chu# Can may chu thu hai, hoac phuong an chuyen sang noi khac. # 3. Van de ve giay phep phan mem# May ao chay he dieu hanh co ban quyen van can giay phep# nhu may vat ly. Day la khoan bi quen nhieu nhat. # 4. Hieu nang khi phan cung da qua tai# Chia mot may yeu thanh nam may ao khong tao ra suc manh moi. # Kiem tra thuc te: neu may chu vat ly cua ban hong ngay bay gio,# bao lau thi cong ty lam viec lai duoc. Neu chua tra loi duoc# thi do la viec can lam truoc khi them may ao moi.Câu hỏi thường gặp
Một máy chủ chạy được bao nhiêu máy ảo
Phụ thuộc tải chứ không phụ thuộc con số cố định. Với các dịch vụ nội bộ nhẹ, một máy chủ hai CPU và hai trăm năm sáu gigabyte RAM chạy vài chục máy ảo là bình thường. Yếu tố chặn thường là RAM và tốc độ đĩa chứ không phải CPU.
Máy ảo có chậm hơn máy thật không
Với CPU và bộ nhớ thì chênh lệch chỉ vài phần trăm. Với đĩa và mạng, nếu đã cài trình điều khiển bán ảo hóa thì mất mát nhỏ. Nếu vẫn dùng thiết bị giả lập mặc định thì chậm hơn rất nhiều, và đây là nguyên nhân của phần lớn lời than máy ảo ì ạch.
Chuyển máy chủ vật lý đang chạy thành máy ảo được không
Được, quy trình này có công cụ hỗ trợ sẵn ở hầu hết các nền tảng. Cần lưu ý hai điểm: trình điều khiển phần cứng cũ trong hệ điều hành có thể gây lỗi khởi động, và giấy phép phần mềm gắn với phần cứng có thể phải kích hoạt lại.
Máy ảo có cần phần mềm diệt virus riêng không
Có. Máy ảo chạy hệ điều hành đầy đủ nên chịu đúng những rủi ro của một máy thật. Chỉ cần chọn sản phẩm có phiên bản cho môi trường ảo hóa, vì bản thường quét đồng loạt trên nhiều máy ảo sẽ làm nghẽn đĩa của máy chủ.
