Có nên sử dụng phân vùng LVM trong ảnh máy ảo?


45

Có nên sử dụng LVM cho các phân vùng khi tạo hình ảnh VM (ví dụ: hình ảnh KVM)? Có vẻ như nó tăng thêm độ phức tạp nếu bạn muốn, gắn hình ảnh qcow2 vào máy chủ nếu hình ảnh có phân vùng LVM.

Mặt khác, dường như các ưu điểm của phân vùng LVM không đáng kể trên hình ảnh VM, vì việc lấy ngoại tuyến VM và thay đổi kích thước phân vùng dễ dàng hơn nhiều so với hệ thống vật lý.


Bạn có hỏi về việc sử dụng LV làm toàn bộ đĩa hoặc làm phân vùng lần lượt tạo thành một đĩa trong VM không?
Nils

@Nils Tôi đang nói về LV như các phân vùng tạo nên một đĩa. Ví dụ: có phân vùng "/" và phân vùng trao đổi dưới dạng các khối logic bên trong một nhóm âm lượng.
Lorin Hochstein

Chỉ cần làm rõ, có vẻ như bạn đã hỏi về việc sử dụng LVM ở phía khách. Việc quản lý sẽ dễ dàng hơn nhiều nếu bạn sử dụng LVM ở phía máy chủ, vượt qua một hoặc hai đĩa và sử dụng chúng mà không có bất kỳ phân vùng nào trên máy khách.
Tobu

Chi phí hoạt động của LVM nằm trong khoảng 10e-9 giây.
Emmanuel

Câu trả lời:


21

"Nó phụ thuộc."

Nếu bạn đang ở trong môi trường mà bạn kiểm soát (vmware hoặc kvm hoặc bất cứ điều gì) và có thể tự đưa ra quyết định về QoS hiệu suất đĩa, thì tôi khuyên bạn không nên sử dụng LVM trong máy ảo của mình. Nó không mua cho bạn nhiều sự linh hoạt mà bạn không thể có được ở cấp độ ảo hóa.

Hãy nhớ rằng, trình ảo hóa đã thực hiện hiệu quả các tác vụ này. Nếu bạn muốn có thể tùy ý thay đổi kích thước các hệ thống tệp (một ý tưởng tốt), chỉ cần tạo một đĩa ảo riêng cho mỗi hệ thống tệp.

Một điều bạn có thể nghĩ đến khi bạn đi trên con đường này. Bạn thậm chí không nhất thiết phải đặt phân vùng trên đĩa ảo của mình theo cách này. Ví dụ, bạn có thể tạo một đĩa ảo cho /home; nó /dev/vdcở trong vm của bạn Khi tạo hệ thống tập tin, chỉ cần làm một cái gì đó như mke2fs -j /dev/vdcthay vì chỉ định một phân vùng.

Đây là một ý tưởng tốt, nhưng ... hầu hết các công cụ (và các quản trị viên khác đến sau bạn) sẽ mong đợi thấy các phân vùng trên mỗi đĩa. Tôi khuyên bạn chỉ nên đặt một phân vùng duy nhất trên đĩa và được thực hiện với nó. Nó có nghĩa là một bước nữa khi thay đổi kích thước hệ thống tập tin. Và đừng quên căn chỉnh đúng các phân vùng của bạn - bắt đầu phân vùng đầu tiên ở mức 1MB là một quy tắc tốt.

Tất cả những gì đã nói - Thực hiện tất cả điều này ở cấp độ ảo hóa có nghĩa là bạn có thể phải khởi động lại VM để thay đổi kích thước phân vùng. Sử dụng LVM sẽ cho phép bạn thêm nóng một đĩa ảo (giả sử tổ hợp hệ thống ảo hóa / hệ điều hành của bạn cho phép điều này) và mở rộng hệ thống tệp mà không cần khởi động lại. Đây chắc chắn là một điểm cộng.


Trong khi đó, nếu bạn đang sử dụng nhà cung cấp đám mây, điều đó sẽ tinh tế hơn.

Tôi không biết nhiều về Azure, GCP hoặc bất kỳ người chơi nhỏ nào, vì vậy tôi không thể giúp đỡ ở đó.

Với AWS, bạn có thể làm theo lời khuyên của tôi ở trên và bạn sẽ thường ổn. Bạn có thể (ngay bây giờ) tăng kích thước của khối EBS (đĩa ảo) khi đang di chuyển và thay đổi kích thước phân vùng, v.v.

Tuy nhiên, trong trường hợp chung, có thể có ý nghĩa khi đặt mọi thứ vào một khối EBS lớn duy nhất và sử dụng LVM (hoặc, tôi cho rằng, phân vùng đơn giản). Amazon cung cấp cho bạn giới hạn IOPS trên mỗi khối lượng. Theo mặc định, giới hạn này chia tỷ lệ với kích thước của âm lượng. ví dụ: đối với gp2khối lượng bạn nhận được 3 IOPS mỗi GiB (tối thiểu 100 IOPS). Xem https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/EBSVolumeTypes.html

Đối với hầu hết các khối lượng công việc, bạn sẽ muốn tất cả các IOPS có sẵn của mình có sẵn cho bất kỳ hệ thống tệp nào, tùy thuộc vào nhu cầu tại thời điểm này. Vì vậy, thật hợp lý khi tạo một khối EBS lớn, lấy tất cả IOPS của bạn trong một nhóm và phân vùng / LVM lên.

Thí dụ:

3 đĩa với hệ thống tập tin / vùng trao đổi độc lập, mỗi kích thước 100 GB. Mỗi người được 300 IOPS. Hiệu suất được giới hạn ở 300 IOPS trên mỗi đĩa.

1 đĩa, dung lượng 300GB. Phân vùng LVM trên đĩa 100GB mỗi cái. Đĩa được 900 IOPS. Bất kỳ phân vùng có thể sử dụng tất cả 900 IOPS.


7

Khối lượng logic dễ dàng hơn để tạo khi đang bay, thay đổi kích thước, xóa.
Câu hỏi "to LVM hay không" luôn có cùng một câu trả lời, tùy thuộc vào nó :)
Sẽ có ý nghĩa nếu bạn cần sự linh hoạt ở cấp độ đĩa, phân vùng.
Sẽ không có ý nghĩa gì nếu bạn không cần sự linh hoạt do LVM cung cấp hoặc không muốn tận dụng các tính năng LVM khác


5

Tôi thực sự thích sử dụng LV vì chúng không dễ truy cập từ máy chủ virt. Do đó, các tệp này không thể dễ dàng bị phá hủy / di chuyển một cách tình cờ.

Các tính năng quan trọng khác của LV:

  • Bạn có thể tạo ảnh chụp nhanh
  • Bạn có thể phân tích IO đĩa dựa trên LV ( iostat)
  • Dễ dàng thay đổi kích thước
  • Bằng cách sử dụng ảnh chụp nhanh, bạn có thể tạo một bản sao nhất quán của các hệ thống đang chạy

Để giảm độ phức tạp, tôi sử dụng LV dưới dạng đĩa (không phải là phân vùng). Hạn chế là tôi chỉ có thể dễ dàng thay đổi kích thước phân vùng cuối cùng của "đĩa" - nhưng bố cục đĩa VM-tiêu chuẩn của tôi tính đến điều đó (vì vậy phân vùng cuối cùng chứa dữ liệu ứng dụng quan trọng).


2

Ngoài tính linh hoạt, hình ảnh VM dựa trên LVM có khả năng ít chi phí hơn, vì chúng không được truy cập thông qua hệ thống tệp. Mặt khác, nó lấy đi các phương tiện dễ dàng di chuyển hình ảnh xung quanh, giống như bạn làm với một tập tin. Không phải là không thể, nhưng phức tạp hơn một chút


1
Đó là một câu trả lời cho một câu hỏi khác nhau. Câu hỏi ở đây là về việc sử dụng LVM trong máy khách, không sử dụng LVM trên máy chủ (LV để lưu trữ các đĩa VM).
Stéphane Chazelas

1
Không, câu hỏi là về việc sử dụng LVM CHO khách chứ không phải IN khách.
HDave

2

Kinh nghiệm của riêng tôi ....

Tôi muốn sử dụng một khối lượng logic (lv) với lvm2 cho một hệ thống tệp ext4; không phải là một đĩa, hay đúng hơn, chỉ đơn giản là một đĩa thô không phân vùng cho fs.

Những gì tôi tìm thấy là việc khởi động VM sẽ bị dừng ở giai đoạn khởi đầu; Nếu tôi nhận xét /etc/fstabmục, máy sẽ khởi động. Rời khỏi /etc/fstabmục nhận xét không phải là một giải pháp mà tôi rất vui khi được sống cùng. Vì vậy, tôi đã tạo một hình ảnh đĩa bình thường (vẫn là một khối hợp lý), phân vùng nó với một phân vùng bằng cách sử dụng fdiskvà tạo hệ thống tệp trên đó. Không có vấn đề gì thêm.

Các gắn kết có liên quan trong tôi /etc/fstabđã sử dụng UUID.

Tôi nghĩ về việc sử dụng tập tin hoặc hệ thống tập tin, nhưng quyết định chống lại nó.

Trong trường hợp của tôi, tôi đang sử dụng hệ thống dựa trên Debian Jessie Devuan


1

Tôi thực sự chỉ sử dụng LVM cho việc lưu trữ sao lưu ở cấp độ ảo hóa, các tệp hình ảnh là dành cho các loài chim. Tôi cũng sẽ khuyên bạn nên sử dụng chúng ở cấp độ khách. Đúng là bạn sẽ không được hưởng lợi từ việc gộp các nguồn lưu trữ khác nhau hoặc thấy dễ dàng hơn để tăng tổng dung lượng đĩa có sẵn (vì bạn có thể có được điều đó một cách dễ dàng bằng cách thay đổi kích thước những gì trình ảo hóa đang trình bày), nhưng đôi khi bạn phân bổ quá nhiều cho một hệ thống tệp . Bạn có thể thích một cách dễ dàng để lấy 1 gig từ / opt và đưa nó cho / var (ví dụ). Nếu bạn đang thực hiện các phân vùng thông thường bên trong VM thì nó làm cho khía cạnh thay đổi kích thước trở nên khó khăn hơn nhiều.


1

Ngoài các câu trả lời hay khác ở đây, lý do thực sự tốt để sử dụng LVM trong máy ảo là bạn muốn có môi trường thử nghiệm để thử nghiệm và có được trải nghiệm thực tế với LVM.

Bạn có thể xem qua các hướng dẫn và hướng dẫn khác nhau, thực hành các quản trị LVM phổ biến (và không phổ biến), thiết lập các tình huống thất bại khác nhau và tìm hiểu cách đối phó với chúng.

tức là như một trợ giúp tự dạy.


0

Chỉnh sửa: Điều dưới đây không còn đúng nữa. Giá trị của việc sử dụng cung cấp mỏng do LVM cung cấp cho hình ảnh đĩa VM có thể là tình huống;

Bạn có đang chạy Development VM trên máy tính xách tay không? thì có lẽ bạn tốt hơn với QCow2.

Quản lý một trang trại VM có thể sử dụng lượng lưu trữ lớn trên nhiều đĩa? LVM có thể là một cách tốt để quản lý lưu trữ đó.


Một lý do để không sử dụng lvm là bạn không thể vượt quá dung lượng lưu trữ bằng lvm. Nếu bạn tạo 10 VM với 100 GB dung lượng lưu trữ, bạn cần 1000 GB đĩa thực, ngay cả khi 9 trong số 10 VM sẽ chỉ sử dụng 20 GB hệ thống tệp của họ. Hình ảnh đĩa thưa hoặc hình ảnh định dạng qcow2 có thể có nghĩa là chỉ lưu trữ thực sự được sử dụng bởi khách cần được phân bổ cho họ.

Điều này có thực sự hữu ích với bạn hay không phụ thuộc vào những gì bạn cần từ bộ nhớ của bạn.


2
Bạn thực sự có thể lưu trữ quá mức bằng cách sử dụng ảnh chụp nhanh lvm. Nó có chi phí, mặc dù.
derobert

3
và trên thực tế, các phiên bản mới hơn của LVM hỗ trợ một "nhóm mỏng", điều này quá mức với bất kỳ sự ngớ ngẩn chụp nhanh nào.
derobert

Đó là một điểm hợp lệ, mặc dù không chính xác; thực tế là cách "tiêu chuẩn" / nhanh chóng sử dụng phân vùng / đĩa LVM dẫn đến kịch bản được phác thảo chắc chắn đáng để chỉ ra. Mặc dù, câu trả lời có thể được thay đổi để phản ánh rằng nó sẽ thêm phức tạp hơn nữa vào con đường học tập .
ILMostro_7
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.