VPS

Ảo hóa lồng nhau: chạy máy ảo trong máy ảo

Thanh Nguyễn Đăng 9 phút đọc 1 khối lệnh

Ảo hóa lồng nhau: chạy máy ảo trong máy ảo
Mục lục bài viết
  1. Nó hoạt động thế nào
  2. Cách bật
  3. Hiệu năng mất bao nhiêu
  4. Dùng vào việc gì
  5. Vì sao không dùng cho hệ thống thật
  6. Dùng vào việc gì và không dùng vào việc gì
  7. Cách bật và kiểm tra
  8. Ba lý do không đưa vào hệ thống thật
  9. Câu hỏi thường gặp
  10. Bài viết liên quan

Trả lời nhanh: Kỹ thuật này cho phép lớp ảo hóa chuyển tiếp các chỉ lệnh ảo hóa của CPU xuống máy khách, nhờ đó máy ảo cũng chạy được máy ảo bên trong. Hữu ích cho phòng thí nghiệm, đào tạo và kiểm thử. Hiệu năng giảm đáng kể ở tầng trong nên không dùng cho hệ thống chạy thật.

Khi bạn muốn học dựng một cụm ảo hóa mà chỉ có một máy chủ, hoặc muốn thử một nền tảng mới mà không đụng vào hạ tầng đang chạy, đây là kỹ thuật giải quyết. Bài này nói về cách bật, cái giá phải trả và những việc nó thực sự hữu ích.

Nó hoạt động thế nào

Bình thường, chỉ lệnh ảo hóa của CPU chỉ dành cho lớp ảo hóa chạy trực tiếp trên phần cứng. Máy ảo bên trong không thấy chúng, nên không tự tạo được máy ảo của riêng nó.

Kỹ thuật lồng nhau làm cho lớp ảo hóa ngoài trình các chỉ lệnh đó ra cho máy khách, đồng thời tự xử lý khi máy khách dùng chúng. Nhờ vậy hệ điều hành trong máy ảo tin rằng nó đang chạy trên phần cứng có hỗ trợ ảo hóa và cài được lớp ảo hóa của riêng nó.

Cái giá là mỗi thao tác đặc quyền của tầng trong phải đi qua thêm một lớp xử lý. Với tính toán thuần túy thì mất mát vừa phải, nhưng với thao tác đĩa và mạng thì mất mát cộng dồn qua hai tầng và trở nên rõ rệt.

Cách bật

Ba việc cần làm, và bỏ sót việc nào cũng dẫn tới lỗi máy khách không thấy hỗ trợ ảo hóa.

  1. Bật ở lớp ảo hóa ngoài. Với các nền tảng dựa trên nhân Linux, đây là một tham số của mô đun ảo hóa, cần đặt rồi nạp lại mô đun hoặc khởi động lại máy chủ.
  2. Đặt kiểu CPU của máy ảo cho đúng. Phải trình cho máy khách một CPU có các chỉ lệnh ảo hóa. Cách đơn giản nhất là chọn kiểu trình đúng CPU vật lý, đổi lại máy ảo đó khó chuyển sang máy chủ có CPU khác.
  3. Kiểm tra bên trong máy khách xem hệ điều hành có thấy hỗ trợ ảo hóa không, trước khi cài lớp ảo hóa tầng trong.

Với môi trường Windows, việc chạy lớp ảo hóa của Microsoft bên trong máy ảo cũng cần các bước tương tự và có thêm vài yêu cầu riêng tùy phiên bản.

Hiệu năng mất bao nhiêu

Không có con số chung vì nó phụ thuộc rất nhiều vào loại tải, nhưng có thể nói về hình dạng của vấn đề.

Tính toán thuần túy trong máy ảo tầng trong: mất mát vừa phải, vì phần lớn mã vẫn chạy trực tiếp trên CPU thật.

Thao tác đĩa và mạng: đây là chỗ đau. Mỗi thao tác phải qua lớp giả lập thiết bị ở tầng trong, rồi qua lớp giả lập ở tầng ngoài, rồi mới tới phần cứng thật. Mất mát cộng dồn và có thể rất lớn.

Khởi động và các thao tác đặc quyền: chậm rõ rệt, vì đây chính là nhóm thao tác phải qua thêm một lớp xử lý.

Cách giảm nhẹ: dùng trình điều khiển bán ảo hóa ở cả hai tầng, cấp đủ RAM cho máy ảo tầng giữa, và đặt kho lưu trữ của tầng trong trên ổ nhanh.

Dùng vào việc gì

Bốn trường hợp nó thực sự có giá trị.

  • Học và đào tạo. Dựng cả một cụm ba máy chủ ảo hóa trên một máy chủ vật lý duy nhất để tập gộp cụm, tập chuyển máy ảo, tập xử lý sự cố. Không cách nào rẻ hơn.
  • Kiểm thử trước khi triển khai. Thử một phiên bản mới của nền tảng, hoặc thử quy trình nâng cấp, mà không đụng vào hạ tầng thật.
  • Phát triển phần mềm liên quan tới ảo hóa, nơi bạn cần môi trường có thể dựng lại nhanh.
  • Chạy công cụ đóng gói container trong máy ảo khi công cụ đó cần khả năng ảo hóa để tạo môi trường cách ly riêng.

Điểm chung: đều là môi trường không chạy dịch vụ thật, và đều đánh đổi hiệu năng lấy sự tiện lợi.

Vì sao không dùng cho hệ thống thật

Ba lý do, và lý do thứ hai quan trọng hơn lý do thứ nhất.

Hiệu năng. Đã nói ở trên, và đây là lý do rõ ràng nhất.

Độ phức tạp khi chẩn đoán. Khi có sự cố, bạn phải xác định vấn đề nằm ở tầng nào. Nhật ký nằm rải ở ba nơi, và các công cụ chẩn đoán không luôn cho thấy bức tranh xuyên tầng. Thời gian xử lý sự cố tăng lên đáng kể.

Hỗ trợ. Nhiều nhà cung cấp phần mềm không hỗ trợ cấu hình lồng nhau. Gặp lỗi và mở yêu cầu hỗ trợ, câu trả lời đầu tiên có thể là hãy chạy trên cấu hình được hỗ trợ rồi thử lại.

Nếu bạn cần nhiều môi trường cách ly cho hệ thống thật, hãy dùng nhiều máy ảo song song trên cùng một lớp ảo hóa, thay vì lồng chúng vào nhau.

Dùng vào việc gì và không dùng vào việc gì

Mục đíchCó nên khôngLý do
Học và thử nghiệm cách dựng cụm ảo hóaNênDựng cả cụm ba máy trên một máy vật lý, thử thoải mái
Thử quy trình nâng cấp trước khi làm trên hệ thống thậtRất nênĐây là ứng dụng có giá trị nhất của kỹ thuật này
Chạy môi trường tích hợp liên tục cần tạo máy ảoĐượcChấp nhận chậm hơn, đổi lấy sự tiện lợi
Chạy dịch vụ phục vụ khách hàngKhôngHiệu năng giảm nhiều và ít được hỗ trợ khi gặp lỗi
Chạy cơ sở dữ liệu quan trọngKhôngThêm một lớp nữa vào đường vào ra ổ đĩa vốn đã là chỗ chậm nhất

Cách bật và kiểm tra

TerminalCách bật và kiểm trabash
# 1. Bat tren may chu vat ly, tuy theo dong bo xu ly# Voi mot dong:cat /sys/module/kvm_intel/parameters/nested# Voi dong con lai:cat /sys/module/kvm_amd/parameters/nested# Ket qua phai la Y hoac 1 # 2. Cau hinh may ao lop mot de no THAY duoc tinh nang ao hoa#    Trong cau hinh may ao, dat kieu bo xu ly la loai truyen thang#    dac tinh cua bo xu ly that, thay vi loai gia lap chung # 3. Kiem BEN TRONG may ao lop motgrep -E "vmx|svm" /proc/cpuinfo | head -n 1# Khong co ket qua nghia la buoc 2 chua dung # 4. Chi khi buoc 3 cho ket qua moi tao duoc may ao lop hai # Ve hieu nang: lop hai cham hon dang ke, nhat la o phan vao ra# o dia va mang. Voi viec hoc va thu nghiem thi hoan toan chap nhan duoc.# Voi he thong that thi khong. # Luu y: mot so nen dam may khong cho bat tinh nang nay tren# may ao ma ho ban. Hoi truoc neu ban dinh dung theo huong do.

Ba lý do không đưa vào hệ thống thật

  • Mỗi lớp thêm vào đều làm chậm đường vào ra, và đó vốn đã là chỗ nghẽn của máy ảo.
  • Khi có sự cố, việc chẩn đoán khó hơn nhiều vì bạn phải phân biệt lỗi thuộc lớp nào.
  • Ít được hỗ trợ. Nhiều hãng phần mềm không hỗ trợ cấu hình này, và bạn sẽ tự xử lý một mình khi gặp vấn đề.

Câu hỏi thường gặp

Lồng được mấy tầng

Về lý thuyết thì nhiều hơn hai, nhưng hiệu năng giảm rất nhanh và độ phức tạp tăng theo. Trong thực tế gần như không ai đi quá hai tầng, và hai tầng đã đủ cho mọi mục đích học tập và kiểm thử.

Máy ảo lồng nhau có chuyển sang máy chủ khác được không

Khó, vì để bật kỹ thuật này bạn thường phải trình đúng CPU vật lý cho máy khách, và điều đó làm máy ảo không tương thích với máy chủ có CPU khác. Đây là một hạn chế đáng kể trong môi trường cụm.

Chạy được trên máy ảo thuê ở nhà cung cấp không

Tùy nhà cung cấp. Một số bật sẵn, một số không cho. Hãy hỏi trước hoặc kiểm tra bằng cách xem hệ điều hành trong máy ảo có thấy hỗ trợ ảo hóa hay không, trước khi lên kế hoạch dựa vào tính năng này.

Có rủi ro bảo mật gì không

Bề mặt tấn công tăng lên vì có thêm một lớp ảo hóa. Với môi trường phòng thí nghiệm thì chấp nhận được. Đừng chạy mã không tin cậy trong cấu hình lồng nhau trên máy chủ cũng đang chạy hệ thống thật.

Chia sẻ:Facebook

Thanh Nguyễn

TND

Tư vấn bản quyền, VPS và máy chủ kèm hóa đơn VAT, hợp đồng đầy đủ cho doanh nghiệp.