Tôi đã cài đặt lại máy chủ Linux từ CentOS 6 đến 7. Máy chủ có 3 ổ đĩa - ổ SSD hệ thống (nó lưu trữ mọi thứ trừ /home
) và hai ổ đĩa cứng 4TB lưu trữ /home
. Mọi thứ đều sử dụng LVM. Hai ổ đĩa 4TB được nhân đôi (sử dụng tùy chọn đột kích trong chính LVM) và chúng được lấp đầy hoàn toàn với phân vùng / home.
Vấn đề là mặc dù các đĩa 4TB được nhận dạng tốt và LVM thấy âm lượng không có vấn đề, nhưng nó không tự động kích hoạt nó. Mọi thứ khác được kích hoạt tự động. Tôi có thể kích hoạt nó bằng tay, và nó hoạt động.
Tôi có một hình ảnh của ổ đĩa hệ thống cũ trong / nhà. Nó cũng chứa khối lượng LVM. Nếu tôi gắn nó với kpartx
, và LVM chọn chúng và kích hoạt chúng. Nhưng tôi có thể thấy không có sự khác biệt giữa các khối lượng và những người không hoạt động.
Hệ thống tập tin gốc cũng là LVM và điều đó kích hoạt tốt.
Tôi thấy một điều đặc biệt: thực thi lvchange -aay
cho tôi biết rằng tôi cần chỉ định ổ đĩa nào tôi muốn kích hoạt. Nó cũng không tự động làm điều đó. Nếu tôi chỉ định lvchange -ay lv_home
- điều đó làm việc.
Tôi không thể tìm thấy bất cứ điều gì có thể chịu trách nhiệm cho hành vi này.
Đã thêm: Tôi nhận thấy rằng hệ thống cũ (sử dụng init) có vgchange -aay --sysinit
trong các tập lệnh khởi động. Cái mới sử dụng systemd và tôi không thấy vgchange
cuộc gọi trong tập lệnh của nó. Nhưng tôi cũng không biết đặt nó ở đâu.
Đã thêm 2: Bắt đầu tìm hiểu systemd. Tôi tìm thấy nơi các kịch bản được đặt và bắt đầu hiểu cách chúng được gọi. Cũng thấy rằng tôi có thể thấy các tập lệnh thực thi với systemctl -al
. Điều này cho tôi thấy rằng sau khi bắt đầu, lvmetad
nó gọi pvscan
cho từng thiết bị khối udev đã biết. Tuy nhiên, tại thời điểm đó, chỉ có một thiết bị khối udev đã đăng ký và đó là một trong những khối lượng lvm được công nhận. Các ổ đĩa cứng cũng có, nhưng dưới các đường dẫn khác nhau và tên dài hơn nhiều. Thiết bị khối được công nhận là một cái gì đó giống như 8:3
, trong khi các ổ đĩa cứng là như thế /device/something/
. Tôi không ở máy chủ nữa, vì vậy tôi không thể viết chính xác (sẽ sửa lỗi này sau).
Tôi nghĩ rằng nó có liên quan đến udev và phát hiện / ánh xạ thiết bị. Tôi sẽ tiếp tục vào buổi tối và sau đó sẽ học udev.
Nếu vẫn thất bại, tôi tìm thấy tập lệnh gọi pvscan
và kiểm tra rằng tôi có thể sửa đổi nó để quét tất cả các thiết bị mọi lúc. Điều đó khắc phục vấn đề, nhưng có vẻ như một vụ hack khá xấu xí, vì vậy tôi sẽ cố gắng tìm ra nguyên nhân gốc rễ thực sự.
Đã thêm 3 : OK, tôi vẫn không biết tại sao điều này xảy ra, nhưng ít nhất tôi đã thực hiện một cách giải quyết khá dễ dàng. Tôi đã thực hiện một dịch vụ systemd khác gọi pvscan
một lần, ngay sau khi bắt đầu lvmetad
. Cuộc gọi khác cho thiết bị cụ thể vẫn còn đó và tôi nghĩ rằng nó thực sự udev
gọi nó (đó là nơi duy nhất tôi tìm thấy tài liệu tham khảo về nó). Tại sao nó không gọi nó cho các ổ đĩa cứng khác - tôi không biết.
lvmetad
là - Tôi chưa nhận thấy bất kỳ dịch vụ nào khác).