Một số kiến thức nền tảng xung quanh vấn đề
Sau một chút nghiên cứu và cố gắng, tôi nhận ra rằng zfs đã sử dụng các điểm gắn kết. Vì vậy, lý thuyết của tôi đã đúng: Điểm gắn kết không tĩnh như ký tự ổ đĩa trong Windows. Thay vào đó, Linux chỉ định chúng theo thứ tự phát hiện trong khi khởi động. Thêm hoặc loại bỏ đĩa có thể trộn các điểm gắn kết.
Ví dụ đơn giản:
sda -> Drive #1
sdb -> Drive #2
sdc -> Drive #3
Bây giờ chúng tôi thêm một ổ đĩa mới # 4. Nó có thể được chèn như thế này:
sda -> Drive #1
sdb -> Drive #4
sdc -> Drive #2
sde -> Drive #3
Nếu chúng tôi phụ thuộc vào điểm gắn kết, bây giờ chúng tôi sẽ gặp rắc rối: Hệ thống của chúng tôi mong đợi ổ đĩa số 2 vào sdb
, nhưng có một điểm hoàn toàn khác (ổ đĩa số 4). Theo wiki wiki, điều này thậm chí có thể xảy ra trong quá trình khởi động thông thường, mà không có bất kỳ thay đổi nào đối với các hdds.
Chúng ta có thể làm gì?
Chà, sử dụng những điểm gắn kết đó có vẻ là một ý tưởng tồi. Thay vào đó, chúng ta nên sử dụng đặt tên thiết bị khối liên tục , có sẵn bằng udev. Nó nên có sẵn trên bất kỳ phân phối linux hiện đại. Tên khối liên tục không sử dụng tên trung tính như sda
hoặc sdb
. Thay vào đó, nó tạo ra một số loại tên, liên tục liên kết với ổ đĩa. Chúng có thể so sánh với các ký tự ổ đĩa trong Windows (vâng, hãy nhớ rằng các ký tự ổ đĩa được liên kết với các phân vùng, trong đó tên khối xác định một ổ đĩa, nhưng cả hai đều tồn tại lâu!).
by-id
và by-uuid
dường như có liên quan nhất để giải quyết vấn đề này, nhưng cũng có những vấn đề khác. Bạn có thể đọc một lời giải thích chi tiết hơn trong trang wiki được liên kết từ Arch. Đây cũng là một bài viết chung, có thể áp dụng cho các bản phân phối khác. Đối với vấn đề này, điều quan trọng cần biết, đó uuids
là một loại id duy nhất được tạo. Và chúng ta có thể sử dụng ids
như một giải pháp thay thế dễ đọc hơn, vì họ đang sử dụng thông tin cụ thể của hdd như nhà sản xuất, kiểu máy và số sê-ri.
ZFS
Như được mô tả ở đây , nó được yêu cầu xuất tất cả các nhóm và sau đó nhập lại chúng, nhưng với công -d
tắc. Nó cho zpool biết nơi để tìm thiết bị:
zpool export <poolname>
zpool import -d /dev/disk/by-id <poolname>
Sử dụng zpool status
điều này có thể được xác minh: Trước khi xuất / nhập, bạn sẽ thấy các điểm gắn kết như /dev/sda
đối với các thiết bị. Điều này sẽ thay đổi thành id đĩa sau những thủ tục.
Khối lượng thường xuyên (tùy chọn)
Đối với tôi điều này là không đủ: tôi có một bộ đệm bổ sung được gọi là bộ đệm cho những thứ như hình ảnh ISO. Không có dữ liệu quan trọng, chỉ để làm giảm ổ SSD của tôi. Vì vậy, đây là một khối lượng ext3 cổ điển. Điều này không khuyến khích máy chủ của tôi khởi động, vì vấn đề chính xác tương tự xảy ra ở đây: Điểm gắn kết đã thay đổi nguyên nhân của các đĩa mới, cho phép gắn kết thất bại.
Tôi đã giải quyết điều này bằng cách loại bỏ ổ đĩa này. Dù sao đây là ý tưởng của tôi, vì các hdds mới đủ lớn và tôi có thể tiết kiệm năng lượng bằng cách có ít đĩa hơn. Để làm như vậy, chúng tôi phải xóa bộ nhớ khỏi proxmox bằng /etc/pve/storage.cfg
tệp. Trong trường hợp của tôi, phần có liên quan trông như thế này:
dir: buffer
path /buffer
content iso
Sau khi loại bỏ nó, chúng ta hãy xem xét /etc/fstab
. Tập tin này gắn kết /buffer
khối lượng của chúng tôi , trong đó nguyên nhân gốc xảy ra:
/dev/sdf /buffer ext3 rw 0 0
Như bạn có thể thấy, điểm gắn kết /dev/sdf
có mặt ở đây. Nếu bạn không muốn từ chối đĩa như tôi, chỉ cần sử dụng một điểm gắn kết duy nhất ở đây! Ví dụ: dev / đĩa / by-id . Đây là một ví dụ cho tên thiết bị khối liên tục. Chúng được tạo trên cơ sở dữ liệu phụ thuộc vào thiết bị. by-id
ví dụ sử dụng số sê-ri phần cứng. Vì vậy, chúng tôi thậm chí có thể thiết bị hai đĩa bằng nhau. Đọc thêm trong đoạn đầu tiên để biết thông tin cơ bản.
Trong trường hợp của tôi, chỉ cần loại bỏ dòng này sẽ ngăn linux gắn kết hdd của tôi. Nếu bạn có nhiều khối lượng hơn, bạn cần phải lặp lại các bước đó cho từng bước, để đảm bảo không gặp phải bất kỳ sự cố nào sau khi khởi động lại.