Quay lại
Cài Đặt Bộ Điều Khiển Đĩa và Bộ Nhớ Đệm
Bộ Điều Khiển Đĩa và Bộ Nhớ Đệm trong Proxmox
Trang này cung cấp thông tin về các cài đặt liên quan đến đĩa khi cấu hình máy ảo, bao gồm các cân nhắc chính và biện pháp phòng ngừa.
Về Bộ Điều Khiển SCSI
Khi tạo một máy ảo mới và chọn bộ điều khiển SCSI, tùy chọn mặc định là “VirtIO Single”. Điều này có nghĩa là nếu nhiều đĩa ảo được tạo (như mô tả trong phần tiếp theo), tất cả sẽ xuất hiện như được kết nối với một bộ điều khiển duy nhất này. Cài đặt này tối ưu hóa việc sử dụng bộ nhớ và thiết bị trong máy ảo.
Việc chọn “VirtIO SCSI” cho phép mỗi đĩa ảo được gán cho một bus SCSI riêng biệt, đòi hỏi thêm không gian trình điều khiển và bộ nhớ. Tuy nhiên, việc phân phối các hoạt động I/O có thể cải thiện hiệu suất trong một số tải công việc nhất định.
Các mô phỏng thẻ SCSI vật lý khác nói chung không được khuyến nghị.
Về Bộ Điều Khiển Đĩa
IDE (còn gọi là ATA) được thiết lập vào năm 1988, đảm bảo tương thích với hầu hết các hệ điều hành. Đối với các phiên bản hệ điều hành phát hành trước năm 2003, việc sử dụng IDE có thể là lựa chọn tốt nhất. Trong khi IDE vật lý có tốc độ tối đa 133MB/giây, IDE ảo hóa không có giới hạn này trừ khi hệ điều hành áp đặt. Tuy nhiên, IDE không hỗ trợ thay nóng, nghĩa là không thể tháo thiết bị khi máy ảo đang chạy.
SATA phù hợp với các phiên bản hệ điều hành phát hành sau năm 2003 và là lựa chọn tương thích nhất cho các hệ điều hành hiện đại. Về mặt vật lý, đây là sự phát triển của IDE với truyền tải nối tiếp, cung cấp tốc độ lên đến 6Gbps (khoảng 600MB/giây). Tuy nhiên, trong môi trường ảo hóa, không có giới hạn tốc độ cố hữu trừ khi bị hệ điều hành khách áp đặt.
VirtIO SCSI và VirtIO SCSI Single cung cấp truy cập đĩa nhanh nhất. Tuy nhiên, chúng yêu cầu hệ điều hành khách có trình điều khiển para-virtualized. Nếu hệ thống không có đĩa IDE/SATA nào, quá trình cài đặt hệ điều hành sẽ thất bại trừ khi trình điều khiển VirtIO SCSI được cài đặt. Các bản phân phối Linux đã bao gồm trình điều khiển này từ khoảng năm 2012, FreeBSD từ năm 2014, và đối với hệ điều hành Windows, cần cung cấp một tệp ISO chứa trình điều khiển VirtIO trong quá trình cài đặt.
Về Bộ Nhớ Đệm Đĩa
Cài đặt bộ nhớ đệm đĩa liên quan đến sự đánh đổi giữa tính toàn vẹn dữ liệu và hiệu suất.
Tính Năng | writethrough | directsync | none | writeback | unsafe |
---|---|---|---|---|---|
Sử Dụng Bộ Nhớ Đệm | Sử dụng bộ nhớ đệm trang (có lợi cho thao tác đọc) | Không sử dụng bộ nhớ đệm | Không sử dụng bộ nhớ đệm | Sử dụng bộ nhớ đệm trang | Sử dụng bộ nhớ đệm trang |
Phát Hành fsync | Được phát hành trên mỗi lần ghi | Được phát hành trên mỗi lần ghi | Không được phát hành | Được phát hành với độ trễ | Không được phát hành |
Quy Trình Ghi | Ghi vào bộ nhớ đệm, sau đó xả ngay lập tức vào đĩa | Ghi trực tiếp vào đĩa và xả ngay lập tức | Ghi trực tiếp vào đĩa mà không xả | Ghi vào bộ nhớ đệm và xả với độ trễ | Ghi vào bộ nhớ đệm mà không xả |
Hiệu Suất Đọc | Cao (sử dụng bộ nhớ đệm) | Thấp (phụ thuộc vào đĩa) | Thấp (phụ thuộc vào đĩa) | Cao (sử dụng bộ nhớ đệm) | Cao (sử dụng bộ nhớ đệm) |
Hiệu Suất Ghi | Trung bình (hỗ trợ bộ nhớ đệm) | Thấp (không có bộ nhớ đệm) | Trung bình (không có bộ nhớ đệm) | Cao (xả bộ nhớ đệm bị trì hoãn) | Rất cao (xả bộ nhớ đệm bị trì hoãn) |
Tính Toàn Vẹn Dữ Liệu | Cao | Rất cao | Trung bình (phụ thuộc vào đĩa) | Thấp (ghi bị trì hoãn) | Rất thấp (nguy cơ mất dữ liệu cao) |
Trường Hợp Sử Dụng | Hệ thống ưu tiên hiệu suất đọc và tính toàn vẹn | Hệ thống yêu cầu tính toàn vẹn dữ liệu tối đa | Hệ thống ưu tiên hiệu suất với nhu cầu toàn vẹn trung bình | Hệ thống ghi nhiều cân bằng giữa hiệu suất và toàn vẹn | Hệ thống tập trung vào hiệu suất nơi mất dữ liệu có thể chấp nhận được |
TRIM (Discard)
Lệnh Discard thông báo cho hệ thống lưu trữ rằng một số khối không còn cần thiết nữa.
Ban đầu được giới thiệu để cân bằng hao mòn SSD, một số hệ điều hành có thể yêu cầu mô phỏng SSD để hỗ trợ TRIM. Ngoài SSD, TRIM cũng có thể hỗ trợ xóa an toàn bằng cách xóa khóa mã hóa thay vì ghi đè dữ liệu.
Trong môi trường đám mây riêng, TRIM cho phép lưu trữ cấp phát mỏng thu hồi không gian. Thông thường, khi lưu trữ được sử dụng bởi máy ảo, ngay cả dữ liệu đã xóa vẫn được phân bổ ở cấp độ lưu trữ.
fstrim -v /mountpoint
Đối với các thao tác TRIM thời gian thực, gắn kết với tùy chọn discard:
mount -o discard,remount /
Luồng IO
Việc bật luồng IO trong VirtIO SCSI chuyển giao các thao tác ghi đĩa sang một luồng riêng biệt khỏi luồng chính của hệ điều hành.
Cài đặt này đòi hỏi thêm tài nguyên CPU nhưng giảm độ trễ, đặc biệt trong các máy ảo có nhiều đĩa ảo xử lý đồng thời các thao tác đọc/ghi.