zpool không thể thay đổi sau khi thêm đĩa mới vào máy chủ (thay đổi điểm gắn kết)


1

Tôi có một máy chủ gia đình chạy Proxmox với hai zpool. Tôi muốn thay thế một hồ bơi hiện có bằng các hdds nhỏ hơn bằng một cái mới. Nhưng khi tôi cắm một trong hai hdds SATA mới, các zpool của tôi không hoạt động. Các bản ghi nói rằng một đĩa quan trọng bị thiếu. Khi tôi gửi đĩa mới, mọi thứ hoạt động tốt.

Tôi phát hiện ra rằng đĩa mới của tôi được gắn vào sda. Nhưng một trong những đĩa cũ trong zpool hiện có cũng được gắn vào sdakhi đĩa mới không được cắm. Tôi có thể làm gì để tránh xung đột này? Tôi cần nói với linux sdalà dành riêng cho đĩa cũ từ zpool và nó nên sử dụng sdgcho đĩa mới.

Tôi bối rối rằng hành vi này thậm chí có thể xảy ra. Kết quả là, linux dường như không liên kết các điểm gắn kết với các ổ đĩa như ký tự ổ đĩa trong Windows. Tôi nghĩ rằng đó là một sai lầm khi sử dụng điểm gắn kết và tôi nên sử dụng một số định danh duy nhất (UUID?) Trong zpool. Nhưng làm thế nào tôi có thể làm điều này? Tôi có các nhóm zfs hiện có nơi tôi đã sử dụng các điểm gắn kết.

Câu trả lời:


2

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ư sdahoặ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-idby-uuiddườ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, đó uuidslà một loại id duy nhất được tạo. Và chúng ta có thể sử dụng idsnhư 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 -dtắ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.cfgtệ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 /bufferkhố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/sdfcó 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-idví 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.


1
Rất vui viết lên Lion +1 !!
Pimp Juice IT

Tôi đã có một trải nghiệm tương tự mặc dù tôi thậm chí không thêm bất kỳ ổ đĩa nào. Tôi đã thực hiện cập nhật Ubuntu apt để có các bản sửa lỗi bảo mật mới nhất và nó yêu cầu khởi động lại. Sau khi khởi động lại, tất cả các ký tự ổ đĩa được gán lại! Ổ đĩa khởi động của tôi là / dev / sda và bây giờ là / dev / sdm nhưng mảng ổ đĩa bây giờ dựa trên / dev / sda. May mắn là việc nhập zpool cho phép tôi lấy lại mọi thứ trực tuyến.
AlanObject
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.