Đây là "sự tiếp nối" của câu trả lời của ewwhite:
Bạn sẽ cần phải viết lại dữ liệu của mình vào zpool mở rộng để cân bằng lại nó
Tôi đã viết một tập lệnh PHP ( có sẵn trên github ) để tự động hóa tập lệnh này trên máy chủ Ubuntu 14.04 của tôi.
Người ta chỉ cần cài đặt công cụ PHP CLI sudo apt-get install php5-cli
và chạy tập lệnh, chuyển đường dẫn đến dữ liệu nhóm của bạn làm đối số đầu tiên. Ví dụ
php main.php /path/to/my/files
Tốt nhất bạn nên chạy tập lệnh hai lần trên tất cả dữ liệu trong nhóm. Lần chạy đầu tiên sẽ cân bằng việc sử dụng ổ đĩa, nhưng các tệp riêng lẻ sẽ được phân bổ quá mức cho các ổ đĩa được thêm vào trước đó. Lần chạy thứ hai sẽ đảm bảo rằng mỗi tệp được phân phối "khá" trên các ổ đĩa. Tôi nói một cách công bằng thay vì đồng đều vì nó sẽ chỉ được phân bổ đều nếu bạn không trộn dung lượng ổ đĩa như tôi với cuộc đột kích 10 cặp kích thước khác nhau của tôi (gương 4tb + gương 3TB + gương 3TB).
Lý do sử dụng tập lệnh
- Tôi phải sửa vấn đề "tại chỗ". Ví dụ, tôi không thể ghi dữ liệu ra hệ thống khác, xóa nó ở đây và ghi lại tất cả.
- Tôi đã lấp đầy nhóm của mình hơn 50%, vì vậy tôi không thể sao chép toàn bộ hệ thống tập tin cùng một lúc trước khi xóa bản gốc.
- Nếu chỉ có một số tệp nhất định cần hoạt động tốt, thì người ta chỉ có thể chạy tập lệnh hai lần so với các tệp đó. Tuy nhiên, lần chạy thứ hai chỉ hiệu quả nếu lần chạy đầu tiên được quản lý để thành công trong việc cân bằng việc sử dụng ổ đĩa.
- Tôi có rất nhiều dữ liệu và muốn có thể thấy một dấu hiệu của sự tiến bộ đang được thực hiện.
Làm thế nào tôi có thể biết nếu đạt được ngay cả việc sử dụng ổ đĩa?
Sử dụng công cụ i điều chỉnh trong một khoảng thời gian (ví dụ iostat -m 5
) và kiểm tra ghi. Nếu chúng giống nhau, thì bạn đã đạt được một mức chênh lệch. Chúng không hoàn hảo ngay cả trong ảnh chụp màn hình bên dưới vì tôi đang chạy một cặp 4TB với 2 cặp ổ 3TB trong RAID 10, vì vậy hai số 4 sẽ được ghi nhiều hơn một chút.
Nếu việc sử dụng ổ đĩa của bạn là "không cân bằng", thì iuler sẽ hiển thị một cái gì đó giống như ảnh chụp màn hình bên dưới nơi các ổ đĩa mới đang được ghi không tương xứng. Bạn cũng có thể nói rằng chúng là các ổ đĩa mới vì số lần đọc là 0 vì chúng không có dữ liệu về chúng.
Kịch bản không hoàn hảo, chỉ có một cách giải quyết, nhưng nó hoạt động với tôi trong thời gian đó cho đến khi ZFS một ngày thực hiện một tính năng cân bằng lại như BTRFS có (ngón tay đan chéo).