Hệ thống tập tin nào cho LVM lớn của đĩa (8 TB)?


21

Tôi có một máy chủ Linux có nhiều đĩa 2 TB, tất cả hiện đang ở trong LVM dẫn đến khoảng 10 TB không gian. Tôi sử dụng tất cả không gian này trên một phân vùng ext4 và hiện có khoảng 8,8 TB dữ liệu.

Vấn đề là, tôi thường gặp lỗi trên các đĩa của mình và ngay cả khi tôi thay thế (nghĩa là tôi sao chép đĩa cũ sang đĩa mới bằng dd sau đó tôi đặt đĩa mới vào máy chủ) ngay khi xuất hiện lỗi, Tôi thường nhận được khoảng 100 MB dữ liệu bị hỏng trên đó. Điều đó làm cho e2fsck phát điên mọi lúc và thường phải mất một tuần để hệ thống tập tin ext4 trở lại trạng thái lành mạnh.

Vì vậy, câu hỏi là: Bạn muốn giới thiệu tôi sử dụng làm hệ thống tập tin nào trên LVM của tôi? Hoặc thay vào đó bạn muốn khuyên tôi làm gì (tôi không thực sự cần LVM)?

Hồ sơ của hệ thống tập tin của tôi:

  • nhiều thư mục có tổng kích thước khác nhau (một số tổng cộng 2 TB, một số tổng cộng 100 MB)
  • gần 200.000 tệp với các kích cỡ khác nhau (3/4 trong số đó khoảng 10 MB, 1/4 giữa 100 MB và 4 GB; hiện tại tôi không thể có thêm số liệu thống kê về các tệp vì phân vùng ext4 của tôi bị hỏng hoàn toàn trong một số ngày)
  • nhiều đọc nhưng ít viết
  • và tôi cần khả năng chịu lỗi (Tôi đã ngừng sử dụng mdadm RAID vì nó không giống như có MỘT lỗi trên toàn bộ đĩa và đôi khi tôi bị hỏng đĩa, tôi thay thế ngay khi có thể, nhưng điều đó có nghĩa là tôi có thể nhận được dữ liệu bị hỏng hệ thống tập tin của tôi)

Vấn đề chính là hỏng đĩa; Tôi có thể mất một số tệp, nhưng tôi không thể mất tất cả mọi thứ cùng một lúc.

Nếu tôi tiếp tục sử dụng ext4, tôi nghe nói rằng tốt nhất tôi nên cố gắng tạo các hệ thống tệp nhỏ hơn và "hợp nhất" chúng bằng cách nào đó, nhưng tôi không biết làm thế nào.

Tôi nghe nói btrfs sẽ rất tuyệt, nhưng tôi không thể tìm thấy bất kỳ manh mối nào về cách nó quản lý việc mất một phần của đĩa (hoặc toàn bộ đĩa), khi dữ liệu KHÔNG được sao chép ( mkfs.btrfs -d single?).

Bất kỳ lời khuyên về câu hỏi sẽ được hoan nghênh, cảm ơn trước!


1
Chính xác những gì đĩa bạn nhận được. Điều đó sẽ cho một manh mối
Soham Chakraborty

Các thành phần xấu, thường chỉ có một hoặc hai thành phần xấu trên toàn bộ đĩa ...
alphatiger

Điều đó có nghĩa là đĩa của bạn đang xấu đi. Hầu như không có gì để làm với hệ thống tập tin. Nếu đĩa xấu, cho dù bạn sử dụng fs nào, sẽ rất tiện. Như những người khác đã đề cập, hãy tìm đĩa RAID và / hoặc mua đĩa doanh nghiệp. Ngoài ra, tìm kiếm bộ điều khiển chất lượng quá.
Soham Chakraborty

Đúng, tôi biết, đó là lý do tại sao tôi thay thế các đĩa bị hỏng. Xin lỗi nếu câu hỏi của tôi không rõ ràng. Tuy nhiên, tôi vẫn nghĩ rằng một số hệ thống tập tin sẽ hoạt động tốt hơn với dữ liệu bị hỏng ...
alphatiger

Bạn thực sự nên thay thế các phần bị lỗi của phần cứng của bạn. Điều này giống như nhìn vào một hình nộm thử nghiệm va chạm sau khi một chiếc xe đã được lái vào tường 200 km / h. "Ôi nhìn kìa! Chân trái của anh ấy gần như ổn rồi! Thử nghiệm đã thành công!" ... không có hệ thống tập tin nào có thể giúp bạn nếu phần cứng cơ bản bị hỏng. XFS có fsck nhanh hơn ext * và sau khi đủ thời gian trôi qua và hệ thống tập tin trưởng thành hơn một chút, có lẽ btrfs cũng sẽ hoạt động. Sau đó, có ZFS nhưng trên Linux thì trạng thái của nó hơi buồn.
Janne Pikkarainen

Câu trả lời:


22

Đó không phải là vấn đề hệ thống tập tin, đó là giới hạn vật lý của đĩa. Đây là một số dữ liệu:

Ổ đĩa SATA thường được chỉ định với tỷ lệ lỗi đọc không thể phục hồi (URE) là 10 ^ 14. Điều đó có nghĩa là 1 byte trên 12TB sẽ bị mất không thể phục hồi ngay cả khi các đĩa hoạt động tốt.

Điều này có nghĩa là không có RAID, bạn sẽ mất dữ liệu ngay cả khi không có ổ đĩa bị lỗi - RAID là lựa chọn duy nhất của bạn.

Nếu bạn chọn RAID5 (tổng dung lượng n-1, trong đó n = số lượng đĩa) thì vẫn chưa đủ. Với 10TB RAID5 bao gồm 6 x 2TB HDD, bạn sẽ có 20% khả năng bị hỏng một ổ đĩa mỗi năm và với một ổ đĩa bị hỏng, do URE bạn sẽ có 50% cơ hội xây dựng lại RAID5 thành công và phục hồi 100% dữ liệu của bạn .

Về cơ bản với dung lượng ổ đĩa cao và URE tương đối cao, bạn cần RAID6 để bảo mật ngay cả khi một lần hỏng đĩa đơn.

Đọc này: http://www.zdnet.com/blog/st Storage / why-sợ-5-stops-work-in-2009/162


3
Chờ, URE nghĩa Unrecoverable đọc Lỗi nhưng điều này không có nghĩa là đĩa thực sự HAS lỗi. Lần đọc tiếp theo có thể (và có thể sẽ) trả về bit chính xác. HĐH có thể sẽ chỉ đọc lại khu vực và có được dữ liệu chính xác. Bạn cũng quên nói về SMART: trước khi một khu vực bị hỏng vĩnh viễn, SMART sẽ cố gắng đọc / ghi dữ liệu từ / đến nó. Nếu phát hiện quá nhiều thất bại, SMART chỉ cần di chuyển nội dung của khu vực này sang một nơi khác và đánh dấu khu vực đó là BAD và không ai có thể viết lại vào đó.
Avio

Vì vậy, bạn chỉ đơn giản là đề nghị mua hàng tấn đĩa mà không hỏi TẠI SAO đĩa của anh ấy bị lỗi như vậy. Nó có thể là một vấn đề nhiệt, nó có thể là một vấn đề với bộ điều khiển SATA bị lỗi, nó có thể là một vấn đề của các đầu nối SATA xấu, v.v.
Avio

@Avio Điều tôi đang nói là với 10TB dữ liệu, bạn sẽ gặp lỗi đọc do giới hạn đĩa cứng, ngay cả khi tất cả các đĩa, bộ điều khiển SATA, đầu nối SATA, v.v ... ở trạng thái hoàn hảo và hoạt động theo thông số kỹ thuật. Tôi cũng nói rằng ngay cả khi bạn quyết định sử dụng RAID để giảm thiểu rằng bạn nên đi với RAID6 vì dung lượng đĩa + URE làm cho ngay cả RAID5 không đủ tin cậy. Ngay cả lỗi ổ đĩa đơn trên RAID5 cũng có khả năng mất dữ liệu cao (50% FFS!).
c2h5oh

1
@Avio U trong URE là viết tắt của Unrecoverable như đã biến mất.
c2h5oh

Đây có thể là sự cố hệ thống tệp, nếu bạn sử dụng bản sao trên hệ thống tệp ghi như btrfs hoặc xfs, bạn rất có thể khôi phục phiên bản trước của tệp, do đó chỉ mất thay đổi cuối cùng đối với tệp. (nếu nó đã được thay đổi)
Jens Timmerman

13

Tự mình làm và sử dụng RAID cho đĩa của bạn, thậm chí có thể là RAID phần mềm với mdadm. Ngoài ra, hãy suy nghĩ về lý do tại sao bạn "thường gặp lỗi trên đĩa" - điều này không bình thường trừ khi bạn sử dụng ổ đĩa SATA loại máy tính để bàn giá rẻ thay vì đĩa cấp RAID.

Sau đó, hệ thống tập tin không còn quan trọng nữa - ext4, xfs đều là những lựa chọn tốt.


1
Tôi đồng ý rằng tôi nên;) nhưng tôi không sử dụng RAID vì nhiều lý do. Cái chính là giá cả, vì chúng đắt hơn 2-3 lần và tôi thực sự không đủ khả năng đó. Lý do thứ hai là lần trước tôi sử dụng RAID 5, tôi đã may mắn nhận được hai ổ đĩa xấu trước khi tôi có thể kết nối một ổ đĩa mới và đồng bộ lại nó (lúc đó tôi không có bất kỳ ổ đĩa dự phòng nào, tôi phải đợi một mới, tôi đồng ý rằng với các đĩa lớp RAID, tôi sẽ gặp vấn đề này). Lý do thứ ba là khi dữ liệu tôi phải lưu trữ ngày càng tăng, tôi thêm các đĩa mới có kích thước lớn hơn, điều tôi không thể làm với cấu hình RAID.
alphatiger

Vì vậy, tôi đang cố gắng xem liệu có tồn tại một hệ thống tập tin mà ai đó sẽ khuyên tôi sử dụng trong cấu hình mà tôi không thể dựa vào dữ liệu chưa được xử lý hay không. Tuy nhiên, cảm ơn câu trả lời của bạn!
alphatiger

4
Vì vậy, bạn đang nói dữ liệu của bạn không xứng đáng với chi phí bổ sung? Nếu bạn không đủ khả năng để có ít nhất hai bản sao dữ liệu của mình, thì bạn nên xem xét nó bị mất. Bạn đúng rằng RAID5 có thể không phải là một lựa chọn tốt, có lẽ bạn nên xem RAID6 hoặc RAID10.
Zoredache

@alphatiger: Các đĩa chỉ quá đắt nếu thời gian và dữ liệu của bạn quá rẻ.
Phục hồi Monica - M. Schröder

8

Tôi đã có may mắn với ZFS, bạn có thể kiểm tra xem liệu nó có sẵn trên bất kỳ bản phân phối nào bạn sử dụng không. Cảnh báo công bằng, nó có thể có nghĩa là xây dựng lại toàn bộ hệ thống của bạn, nhưng nó mang lại hiệu năng thực sự tốt và khả năng chịu lỗi.


Tôi hiện đang sử dụng Debian GNU / Linux, có vẻ như có triển khai FUSE, nhưng không có gói nào (do vấn đề cấp phép). Có lẽ tôi sẽ dùng thử (sau khi biên dịch từ các nguồn, vì sử dụng FUSE, nó không đẹp lắm cho sản lượng cao), tôi không lo lắng về việc phải xây dựng lại toàn bộ hệ thống tệp của mình. Cảm ơn !
alphatiger

+1 cho ZFS. RAID truyền thống sẽ âm thầm làm hỏng dữ liệu vì nó không đủ thông minh để biết khi nào các khối bị lỗi hoặc cách sửa chữa chúng. Mặt khác, ZFS sẽ phát hiện các khối bị hỏng (thông qua tổng kiểm tra) và sửa chữa chúng từ các bản sao gương tốt đã biết. Chạy ZFS trong FUSE, trong khi không lý tưởng, sẽ hoạt động đủ tốt cho nhiều khối lượng công việc. Điều đó đang được nói, bạn nên tải thử nghiệm ứng dụng của bạn trước khi sử dụng ứng dụng này trong môi trường sản xuất.
bahamat

1
+1 khác cho ZFS. Gần như tất cả các máy chủ ở đây đều chạy Linux và tôi là một fan hâm mộ lớn của nó, nhưng ZFS đã chứng minh rất hữu ích với tôi trong hơn 3 năm qua mà tôi thực sự đã trải qua nỗ lực học và thiết lập FreeBSD trên máy lưu trữ lớn để có thể sử dụng ZFS mà không có bất kỳ vấn đề cấp phép hoặc hiệu suất nào.
ssc

Tôi đang chạy nó dưới Solaris trên máy trạm Sun cũ của tôi và hiệu suất không có gì đáng ngạc nhiên, khi xem xét phần cứng (Opteron @ 2.2GHz lõi đơn với bộ nhớ 3G và một cặp ổ đĩa 250G SATA).
TMN

8

Tôi thêm các đĩa mới có kích thước lớn hơn dần dần

Vì bạn rất thú vị khi sử dụng LVM và bạn muốn xử lý nhiều ổ đĩa, nên câu trả lời đơn giản là chỉ sử dụng tính năng nhân bản là một phần của LVM. Chỉ cần thêm tất cả các khối lượng vật lý vào LVM của bạn. Khi bạn đang tạo một khối lượng logic, vượt qua --mirrorstùy chọn. Điều này sao chép dữ liệu của bạn.

Một tùy chọn khác có thể là chỉ thiết lập một số cặp RAID1. Sau đó thêm tất cả các ổ RAID1 dưới dạng PV vào VG của bạn. Sau đó, bất cứ khi nào bạn muốn mở rộng lưu trữ của mình, chỉ cần mua một cặp đĩa.


7

Bạn thực sự nên sử dụng RAID 5, 6, 10, 50 hoặc 60. Đây là một số tài nguyên để bạn bắt đầu:

thông tin cơ bản về RAID

làm thế nào và thiết lập

Kiểm tra các liên kết ngon của tôi để biết thêm các liên kết RAID: http://delicy.com/slmingol/ston


Xem ý kiến ​​của tôi về câu trả lời của SvenW để biết lý do tại sao tôi không thực sự muốn RAID. (Trên thực tế, tôi đã thiết lập nhiều RAID phần mềm trong một công ty có thể đủ khả năng đó ...) Tuy nhiên, cảm ơn!
alphatiger

Tôi đã luôn sử dụng các ổ đĩa hàng hóa cho RAID, chưa bao giờ sử dụng các ổ đĩa được xếp hạng để sử dụng RAID và chưa bao giờ gặp sự cố với điều đó miễn là bạn chọn một RAID có đủ dự phòng trong đó (RAID 6 hoặc RAID 60). Sử dụng RAID 6 bạn cần một số chẵn. Bạn có thể phát triển RAID khá dễ dàng bằng cách thay thế các thành viên hiện có bằng các đĩa lớn hơn và sau đó phát triển vào không gian của các đĩa mới hơn.
slm

4

Nếu bạn thực sự lo lắng về vấn đề tham nhũng dữ liệu, tôi sẽ đề xuất một hệ thống tập tin kiểm tra như zfs và btrfs - mặc dù lưu ý rằng btrfs vẫn được coi là đang trong quá trình phát triển và không sẵn sàng sản xuất.

Không có bảo đảm rằng dữ liệu đọc (thậm chí đọc thành công) từ đĩa sẽ chính xác. Các khối có tổng kiểm tra, nhưng chúng là các tổng kiểm đơn giản không phải lúc nào cũng bắt lỗi. Các hệ thống tệp mới hơn như ZFS gắn các tổng kiểm tra có khả năng hơn vào các tệp và có thể (và được báo cáo là) ​​bắt và sửa các lỗi dữ liệu không được nhận thấy bởi đĩa cứng hoặc bộ điều khiển RAID.


1

Như @ c2h5oh nói , Unrecoverable là rất quan trọng - điều đó có nghĩa là đĩa đã thử và không đọc lại được sector.

Theo kinh nghiệm của tôi, một khi đĩa bắt đầu tạo ra các lỗi đọc không thể phục hồi (URE), một số dữ liệu sẽ bị mất vĩnh viễn và hy vọng duy nhất của bạn là sao lưu ngay lập tức tất cả dữ liệu bằng GNU ddresTHER , có thể thử lại các cung bị lỗi cũng như bỏ qua các lỗi không thể phục hồi.

Giả sử bạn có các bản sao lưu, chúng có thể đã bị lỗi do URE và chắc chắn sẽ có một số tệp bị hỏng, do đó bạn sẽ phải ghép một bộ dữ liệu đầy đủ từ các bản sao lưu khác nhau của cùng một hệ thống tệp.

Các câu trả lời khác khuyến nghị ZFS rất đáng đọc, vì tính năng lọc dữ liệu liên tục và tính năng RAID của nó sẽ giúp giữ cho dữ liệu của bạn an toàn hơn trong tương lai - mặc dù vẫn không thể thay thế cho các bản sao lưu, cũng bảo vệ chống lại lỗi của người dùng và quản trị viên.

Tôi sẽ chỉ sử dụng LVM nếu bạn không cần ảnh chụp nhanh - nó không tích hợp tốt với RAID, không bao gồm kiểm tra dữ liệu / kiểm tra dữ liệu và bạn vẫn cần sao lưu, vì vậy một cái gì đó như ZFS có lẽ là một lựa chọn tốt hơn. Xem câu trả lời này về các vấn đề và rủi ro LVM để biết thêm.

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.