it-swarm-vi.com

LVM có ảnh hưởng đến hiệu suất không?

Tôi phải chuyển một vài máy chủ sang Linux và một khía cạnh quan trọng mà tôi cần đánh giá là hệ thống Máy chủ mới của tôi phải có dung lượng lưu trữ đàn hồi. Tự nhiên, thực hiện một số nghiên cứu cơ bản, tôi đã bắt gặp LVM.

Có bất kỳ hình phạt hiệu suất cho việc sử dụng lvm? Nếu vậy, làm thế nào tôi có thể đo lường nó?

Điều tôi đang cân nhắc ngay bây giờ là có Linux làm HĐH máy chủ với LVM và các hộp Linux ảo hóa chạy trên nó (tôi có nên thêm LVM trên HĐH khách không?).

90
Pablo

LVM được thiết kế theo cách giữ cho nó không thực sự cản trở rất nhiều. Từ quan điểm không gian người dùng, nó trông giống như một lớp "công cụ ảo" khác trên đầu đĩa và có vẻ tự nhiên khi tưởng tượng rằng tất cả các I/O phải vượt qua điều này trước khi nó đến hoặc từ thực phần cứng.

Nhưng nó không như thế. Hạt nhân đã cần phải có ánh xạ (hoặc một vài lớp ánh xạ thực sự) kết nối các hoạt động cấp cao như "ghi tệp này vào tệp" với trình điều khiển thiết bị lần lượt kết nối với các khối thực tế đĩa.

Khi LVM được sử dụng, tra cứu đó đã thay đổi, nhưng chỉ vậy thôi. (Vì dù sao nó cũng phải xảy ra, làm khác đi một chút là hiệu quả không đáng kể.) Khi thực sự viết tệp, các bit sẽ dẫn đường dẫn đến phương tiện vật lý như họ sẽ làm khác.

Có những trường hợp LVM có thể gây ra vấn đề về hiệu suất. Bạn muốn đảm bảo các khối LVM được căn chỉnh chính xác với hệ thống cơ bản, điều này sẽ tự động xảy ra với các bản phân phối hiện đại. Và hãy chắc chắn rằng bạn không sử dụng hạt nhân cũ có lỗi như cái này . Ồ, và sử dụng ảnh chụp nhanh LVM làm giảm hiệu suất (và ngày càng như vậy với mỗi ảnh chụp nhanh hoạt động). Nhưng chủ yếu, tác động nên rất nhỏ.

Cuối cùng: làm thế nào bạn có thể kiểm tra? Công cụ đo điểm chuẩn đĩa tiêu chuẩn là bonnie ++ . Tạo một phân vùng với LVM, kiểm tra nó, xóa sạch nó và (ở cùng một vị trí, để giữ cho các yếu tố khác giống hệt nhau) tạo ra một hệ thống tập tin đơn giản và điểm chuẩn một lần nữa. Họ nên gần giống hệt nhau.

109
mattdm

LVM, giống như mọi thứ khác, là một phước lành hỗn hợp.

Liên quan đến hiệu suất, LVM sẽ cản trở bạn một chút vì đây là một lớp trừu tượng khác phải được xử lý trước khi các bit chạm (hoặc có thể được đọc từ) đĩa. Trong hầu hết các tình huống, hiệu suất hit này sẽ thực tế không thể đo lường được.

Ưu điểm của LVM bao gồm thực tế là bạn có thể thêm nhiều bộ nhớ hơn vào các hệ thống tệp hiện có mà không phải di chuyển dữ liệu xung quanh. Hầu hết mọi người thích nó vì lợi thế này.

Một nhược điểm của LVM được sử dụng theo cách này là nếu bộ lưu trữ bổ sung của bạn kéo dài các đĩa (tức là liên quan đến nhiều hơn một đĩa), bạn sẽ tăng khả năng lỗi đĩa sẽ khiến bạn mất dữ liệu. Nếu hệ thống tập tin của bạn kéo dài hai đĩa và một trong số chúng bị lỗi, có lẽ bạn đã bị mất. Đối với hầu hết mọi người, đây là rủi ro chấp nhận được do lý do không gian so với chi phí (nghĩa là nếu điều này thực sự quan trọng sẽ có ngân sách để thực hiện chính xác) - và vì, như họ nói, sao lưu tốt, phải không?

Đối với tôi, lý do duy nhất để không sử dụng LVM là việc khắc phục thảm họa không (hoặc ít nhất, không được xác định rõ). Một đĩa có khối lượng LVM có hệ điều hành bị xáo trộn trên đó không thể gắn một cách tầm thường vào một máy tính khác và dữ liệu được phục hồi từ nó; nhiều hướng dẫn để khôi phục khối lượng LVM dường như bao gồm các bước như quay ngược thời gian và chạy vgcfgbackup, sau đó sao chép tệp kết quả/etc/lvmconf vào hệ thống lưu trữ khối lượng hosed của bạn. Hy vọng mọi thứ đã thay đổi trong ba hoặc bốn năm kể từ lần cuối tôi phải xem xét điều này, nhưng cá nhân tôi không bao giờ sử dụng LVM vì lý do này.

Mà nói.

Trong trường hợp của bạn, tôi cho rằng các máy ảo sẽ tương đối nhỏ so với hệ thống Máy chủ. Điều này có nghĩa với tôi, bạn có nhiều khả năng muốn mở rộng lưu trữ trong a VM sau; điều này được thực hiện tốt nhất bằng cách thêm một đĩa ảo khác vào VM và sau đó phát triển hệ thống tập tin bị ảnh hưởng VM. Bạn không có lỗ hổng bao gồm nhiều đĩa vì các đĩa ảo rất có thể sẽ nằm trên cùng một thiết bị vật lý trên hệ thống Máy chủ.

Nếu máy ảo sẽ có bất kỳ tầm quan trọng nào đối với bạn, bạn sẽ RAID hệ thống máy chủ bằng cách nào đó, điều này sẽ làm giảm tính linh hoạt để tăng lưu trữ sau này. Vì vậy, tính linh hoạt của LVM có lẽ sẽ không được yêu cầu.

Vì vậy, tôi cho rằng bạn sẽ không sử dụng LVM trên hệ thống Máy chủ, nhưng sẽ cài đặt máy ảo để sử dụng LVM.

17
David Mackintosh

Nói chung: Nếu bạn thêm một lớp phức tạp mới ("aka nhiều việc phải làm"), không có gì sẽ nhanh hơn. Lưu ý: Bạn chỉ thêm công việc và không 'thay đổi' theo cách công việc được thực hiện.

Làm thế nào bạn có thể đo lường một cái gì đó? Chà, bạn tạo một phân vùng có LVM và một phân vùng không có, sau đó sử dụng điểm chuẩn bình thường và chỉ cần chạy nó. Giống như những người ở

http://www.umiacs.umd.edu/~toaster/lvm-testing/

Có vẻ như, chỉ tác động một chút đến tốc độ. Điều đó dường như bằng cách đồng bộ với những phát hiện của một người khác đã chạy điểm chuẩn:

"ext4 nhanh hơn với LVM so với không có và các tiêu chuẩn hệ thống tệp khác" Chuỗi danh sách gửi thư hạt nhân Linux

Nhưng chỉ cần tự chuẩn hóa nó và xem phần cứng và HĐH mà bạn muốn sử dụng có hoạt động giống nhau không và liệu bạn có thể bỏ qua tác động (có thể hơi) của một lớp phức tạp bổ sung cho bạn lưu trữ đàn hồi không.

Bạn có nên thêm LVM vào HĐH khách không: Điều đó phụ thuộc vào việc bạn có cần HĐH khách để có bộ lưu trữ đàn hồi không, phải không? Nhu cầu của bạn chỉ ra những gì bạn phải triển khai.

4
akira

lvm có tốc độ chậm hơn phân vùng thông thường, đặc biệt với các tệp nhỏ. Nghiên cứu thú vị: https://www.researchgate.net/publication/283617601_LVM_in_the_Linux_en môi_Performance_exestation

1
Kha Vu

Sẽ không có nhiều hiệu suất đạt được chỉ từ lvm, nhưng nếu bạn sẵn sàng nhận nó, thay vào đó hãy sử dụng zfs. Bạn có thể quản lý khối lượng và khả năng phục hồi và tất cả các loại tính năng tuyệt vời khác.

0
stu

Không ai đề cập đến lvm2 có thể làm cho tốc độ đọc và ghi được nhân lên (tương tự như raid0). Cá nhân tôi sử dụng 3 đĩa giống hệt nhau và trên chúng lvm2 ở chế độ tước, các hoạt động đọc và ghi chiếm 1/3 thời gian, đó là một tác động lớn, hệ thống tập tin nhanh hơn ba giây. Tôi biết: bất kỳ đĩa nào bị lỗi và tất cả dữ liệu trên chúng sẽ không thể truy cập được; nhưng điều đó không có nghĩa là bất kỳ mất mát nào, vì BackUP là PHẢI, không có gì như Raid, LVM2, ZFS sẽ tránh để có BackUP; Vì vậy, tôi không bao giờ sử dụng phản chiếu, raid5 và như vậy, tôi luôn sử dụng tước (để có hiệu suất cao nhất) và đã đồng bộ hóa BackUP. ZFS rất tốt cho nén khi đang di chuyển và với tham số bản sao lớn hơn một lần giống như phản chiếu, nhưng một điều ZFS có và không ai khác có là tự động phục hồi khi quay bit (các bit thay đổi tự nhiên trong khi đĩa bị tắt), nhưng ZFS i tạo ra một tác động thực sự lớn (tính toán tổng kiểm tra, xác minh chúng) và một vấn đề thị trưởng (thêm nhiều đĩa vật lý).

Để tiếp tục: tôi chỉ sử dụng ZFS cho BackUP của mình trên các ổ đĩa ngoài, nhiều (hai hoặc ba) ssd có sọc lvm2 cho HĐH (nâng cấp sau khi tôi làm lại bản sao của HĐH), tôi có xu hướng sử dụng HĐH không thể sửa chữa được; và tôi sử dụng nhiều (sáu) đĩa spinnin với lvm2 bị tước dữ liệu, như các máy ảo, một lần nữa làm thay đổi bất kỳ thay đổi nào tôi làm lại BackUPs; Vì vậy, sau khi bất kỳ đĩa nào bị lỗi tôi chỉ cần thay thế nó và khôi phục bản sao lưu cuối cùng; bây giờ một ngày tôi có tốc độ ghi gần 1,8GiB/giây, do đó, việc khôi phục một máy ảo từ BackUP chỉ mất chưa đến 30 giây (32GiB cho mỗi đĩa máy ảo).

Vì vậy, câu trả lời của tôi là: không chỉ sử dụng một thứ, hãy thông minh và sử dụng tốt nhất từng bộ phận, lvm2 tước nhanh hơn mdear cấp 0, nhiều hơn khi sử dụng sáu đĩa quay; một cảnh báo với tước ssd, hai và ba là tốt, bốn ssd có thể làm giảm hiệu suất (các thử nghiệm của tôi cho tốc độ ghi thấp hơn khi tôi sử dụng bốn ssd giống hệt nhau trong chế độ tước, bất kể là lvm, mdston0, v.v.), dường như SSD TRIM và như vậy khuếch đại ghi có thể là nguyên nhân chính của việc thêm nhiều ssd vào âm lượng bị tước làm cho tốc độ ghi thấp hơn.

Waring với ssd và bất kỳ raid0 (khối lượng bị tước), sắp xếp mọi thứ một cách hoàn hảo, gán kích thước cụm trên hệ thống tập tin chính xác, kích thước quy định, vv để không ai gây ra sự xuống cấp; như mẫu: sector đĩa là 2048, vì vậy 2K ở bất kỳ đọc/ghi dưới dạng minimun, không bao giờ sử dụng hệ thống tệp sử dụng clusyer 512 byte, hơn thế, tốt hơn là sử dụng kích thước cụm 2K hoặc 4K; Bây giờ hãy tưởng tượng bạn sử dụng 3xHDD, mỗi lĩnh vực 2K, vì vậy tại bất kỳ cụm hệ thống tập tin tối ưu đọc/ghi nào sẽ là 3x2K = 6K, nhưng điều đó là không thể đối với nhiều hệ thống tập tin, sau đó nghĩ xem nếu sử dụng kích thước cụm 64K, 64K/6K = 32/3, điều đó gây ra sự mất cân bằng, vì vậy không tối ưu, v.v. Làm toán để có được kích thước cụm tối ưu.

Kết quả tốt nhất của tôi là: Kích thước cụm = dải kích thước * số lượng đĩa trên dải; theo cách đó, mỗi lần đọc/ghi có kích thước chính xác khiến tất cả các đĩa hoạt động, vì vậy tốc độ cải thiện là rất lớn. Một ví dụ kích thước cụm 192K cho 3 đĩa với kích thước sọc 64K; một ví dụ khác kích thước cụm 192K cho 6 đĩa với kích thước sọc 32K.

Và luôn luôn nhớ kiểm tra đĩa đơn trong các khối 4K, 8K, 16K, 32K, 64K; rất nhiều đĩa cho tốc độ thực sự kém với các số thấp hơn như 4K, nhưng cho thời gian nhanh hơn gấp mười lần khi ở mức 64K, 128K hoặc cao hơn.

Có, sử dụng kích thước cụm lớn có thể làm mất chất thải không gian trên cụm las của mỗi tệp (nếu bạn sử dụng hàng triệu tệp chỉ có 1 byte mỗi tệp) tốt hơn nên sử dụng hệ thống nhỏ gọn/gói trên hệ thống tệp, như một mẫu đĩa 4TiB có kích thước cụm 4K chỉ có thể có ít hơn 4TiB/4K = 1073741824 mỗi tệp 1Byte, chỉ là 1GiB nếu tất cả các tệp có kích thước 1Byte (kích thước cụm 4K), tỷ lệ xấu nhất của cụm lớn hơn, nhưng nếu các tệp rất lớn, như các máy ảo (gần 32GiB dưới dạng mẫu hoặc chỉ vài megabyte), phần bị mất chỉ nằm trên cụm cuối cùng; Vì vậy, các tệp lớn, kích thước cụm lớn sẽ tốt hơn cho hiệu năng, nhưng hãy cẩn thận với cách máy ảo sử dụng nó.

Sẽ không ai nói cho bạn bí mật này: bên trong khách không sử dụng kích thước cụm 4K, sử dụng cùng kích thước cụm với kích thước cụm trong khi đĩa ảo cư trú hoặc bội số của nó.

Vâng, tôi rất háo hức khi đạt được tốc độ tối đa bên trong các đĩa khách, như tôi đã nói với 6 đĩa quay tôi nhận được gần 1.7GiB/giây, tốc độ bus SATA III là nút cổ chai, không phải là đĩa của chính họ. Tôi sử dụng các đĩa cao cấp (không rẻ), bộ đệm 128MiB với tốc độ ghi là 283MiB/s.

Đối với bạn và cho tất cả mọi người: Tốt nhất là tìm hiểu cách kích thước cụm, kích thước sọc và kích thước khối phải liên quan trước khi thực hiện bất kỳ kiểm tra tốc độ nào, việc kiểm tra LVM2 hoặc bất kỳ RAID nào khác (cũng là ZFS) có thể đưa ra kết luận FALSE.

Chỉ là một ví dụ: Tôi kiểm tra thời gian khởi động linux của mình với các đĩa Sata 2x60MiB/s 2,5 inch 5400 vòng/phút trên bo mạch chính của cổng Sata II, sau đó kiểm tra với 2xSSD Sata III (chúng có thể ghi hơn 250MiB/s nếu được kết nối với Sata III cổng), thời gian khởi động chỉ mất ít hơn hai giây, chỉ hai giây khi khởi động năm phút, tại sao? bởi vì hầu hết các đĩa thời gian khởi động không được sử dụng, nó đang thực hiện mọi thứ trên ram và cpu, nhưng không phải là i/o.

Allways kiểm tra điều thực tế bạn sẽ làm, không chỉ tốc độ thô (nói cách khác, tốc độ tối đa).

Tốc độ tối đa là tốt để biết bit không thể biểu diễn, bạn có thể không sử dụng các đĩa ở tốc độ tối đa 100% thời gian, HĐH và APP phải làm mọi việc trên ram và cpu mà không có I/O, vì vậy tốc độ ổ đĩa thời gian không vấn đề gì cả.

Tất cả mọi người nói rằng SSD cải thiện rất nhiều tốc độ Windows Boot, trong các thử nghiệm của tôi cũng là FALSE, tôi chỉ chứng minh được 28 giây trong thời gian khởi động gần phút thứ nhất.

Vì vậy, nếu bạn làm như tôi: Linux copy-to-ram khi khởi động, SSD sẽ không được đặt cược hơn so với ổ cứng xoay, tôi cũng đã thử nghiệm USB 3.1 Gen2 (đọc 139MiB/giây), thời gian khởi động chỉ được thực hiện trong vài giây trên Năm phút khởi động, tại sao? dễ dàng, việc đọc được thực hiện khi sao chép vào ram, afyer hơn đĩa/ssd/usb-stick không được sử dụng lại trên phần còn lại của bu-lông, dữ liệu trên ram, giống như ổ đĩa ram.

Bây giờ tôi đang bán tất cả ổ SSD mà tôi có, họ không cải thiện sao chép Linux khi khởi động, nhưng điểm chuẩn cho biết họ nhanh hơn gấp 5 lần ... xem, điểm chuẩn đưa ra kết luận FALSE ... yest, test và test thật ngày làm việc.

Hy vọng điều này có thể làm mọi thứ rõ ràng ... LVM với kích thước cụm và sọc xấu ảnh hưởng nhiều hơn nhiều so với chi phí trên lớp.

0
Anonymous

Tôi có nên thêm LVM trên hệ điều hành khách không?

Bạn không nên, vì có một hệ thống tệp ext3 hoặc ext 4 bên trong Khối lượng logic của máy chủ là đủ. Không cần thêm Nhóm âm lượng khác và Khối lượng vật lý và Khối lượng logic bên trong đó.

0
Marc