CentOS 6에서 7로 Linux 서버를 다시 설치했습니다. 서버에는 3 개의 드라이브가 있습니다. 하나는 시스템 SSD 드라이브 (제외 모든 것을 호스팅 /home
)와 /home
. 모든 것이 LVM을 사용합니다. 2 개의 4TB 드라이브는 미러링되고 (LVM 자체 내에서 raid 옵션 사용) / home 파티션으로 완전히 채워집니다.
문제는 4TB 디스크가 정상적으로 인식되고 LVM이 문제없이 볼륨을 인식하더라도 자동으로 활성화되지 않는다는 것입니다. 다른 모든 것은 자동으로 활성화됩니다. 수동으로 활성화 할 수 있으며 작동합니다.
/ home에 이전 시스템 드라이브의 이미지가 있습니다. 여기에는 LVM 볼륨도 포함됩니다. 으로 마운트하면 kpartx
LVM이이를 선택하고 활성화합니다. 그러나 나는 그 볼륨과 비활성 볼륨 사이의 차이를 볼 수 없습니다.
루트 파일 시스템도 LVM이며 제대로 활성화됩니다.
하지만 특이한 점이 있습니다. 실행 lvchange -aay
하면 활성화 할 드라이브를 지정해야한다는 메시지가 표시됩니다. 자동으로 수행되지도 않습니다. 내가 지정 lvchange -ay lv_home
하면 작동합니다.
이 행동의 원인이 될 수있는 어떤 것도 찾을 수 없습니다.
추가됨 : 이전 시스템 (init 사용)이 vgchange -aay --sysinit
시작 스크립트에 있음을 알았 습니다. 새로운 것은 systemd를 사용 vgchange
하며 스크립트에 호출 이 표시되지 않습니다 . 하지만 어디에 두어야할지 모르겠습니다.
추가 2 : systemd를 파악하기 시작했습니다. 스크립트가 어디에 있는지 찾아서 어떻게 호출되는지 이해하기 시작했습니다. 또한 실행 된 스크립트를 systemctl -al
. 이것은 시작 후 알려진 각 udev 블록 장치를 lvmetad
호출 한다는 것을 보여줍니다 pvscan
. 그러나 그 시점에는 등록 된 udev 블록 장치가 하나만 있으며 이는 인식 된 lvm 볼륨 중 하나입니다. 하드 드라이브도 있지만 다른 경로와 훨씬 더 긴 이름 아래에 있습니다. 인식 된 블록 장치는 유사 8:3
하지만 하드 드라이브는 유사 /device/something/
합니다. 더 이상 서버에 있지 않기 때문에 정확하게 작성할 수 없습니다 (나중에 수정 예정).
나는 그것이 udev 및 장치 감지 / 매핑과 관련이 있다고 생각합니다. 나는 저녁에 계속해서 udev를 공부할 것입니다.
다른 모든 것이 실패하면 호출하는 스크립트를 찾아서 pvscan
항상 모든 장치를 검색하도록 수정할 수 있는지 확인했습니다. 그러면 문제가 해결되지만 다소 못생긴 해킹처럼 보이므로 실제 근본 원인을 알아 내도록 노력하겠습니다.
추가 3 : 좋아, 왜 이런 일이 발생 하는지 아직 모르겠지만 적어도 꽤 괜찮은 해결 방법을 만들었습니다. pvscan
를 시작한 직후에 한 번 호출하는 또 다른 시스템 서비스를 만들었습니다 lvmetad
. 특정 장치에 대한 다른 호출은 여전히 존재하며 실제로 udev
이를 호출하는 것이라고 생각 합니다 (내가 참조를 찾은 유일한 곳입니다). 다른 하드 드라이브에 대해 호출하지 않는 이유-모르겠습니다.
내가 해냈어! 내가 해냈어! 나는 그것을 제대로 고쳤습니다 (나는 생각합니다).
다음은 이야기입니다.
얼마 후 서버에 결함이있는 것으로 밝혀져 폐기해야했습니다. 나는 디스크를 유지하고 다른 모든 것을 새로 얻었습니다. 그런 다음 SSD에 CentOS를 다시 설치 한 다음 HDD를 연결했습니다. LVM은 훌륭하게 작동하고 디스크가 인식되고 구성이 유지되었습니다. 그러나 동일한 문제 가 다시 발생 했습니다. 재부팅 후 볼륨이 비활성화되었습니다.
그러나 이번에는 다른 것을 알아 차 렸습니다. 부트 로더는 다음 매개 변수를 커널에 전달합니다.
crashkernel = auto rd.lvm.lv = centos / root rd.lvm.lv = centos / swap rhgb quiet
흠, 그 모습, 잠깐 친숙한 !
빠른 Google 쿼리 가 있습니다 .
rd.lvm.lv =
주어진 이름으로 만 논리 볼륨을 활성화하십시오. rd.lvm.lv는 커널 명령 줄에서 여러 번 지정할 수 있습니다.
물론 지금. 그것은 그것을 설명합니다!
따라서 해결책은 다음과 같습니다 (여러 Google 쿼리에서 수집).
/etc/defaults/grub
매개 변수에 추가 볼륨을 포함하도록 수정 하십시오.crashkernel=auto rd.lvm.lv=centos/root rd.lvm.lv=centos/swap
rd.lvm.lv=vg_home/lv_home
rhgb quiet
grub2-mkconfig -o /boot/grub2/grub.cfg
mkinitrd -f -v /boot/initramfs-3.10.0-327.18.2.el7.x86_64.img 3.10.0-327.18.2.el7.x86_64
. 참고 : 값은 다를 수 있습니다. uname -r
해당 커널 버전을 가져 오는 데 사용 합니다. 아니면 그냥 읽어보세요 mkinitrd
. (솔직히이 단계가 필요한 이유는 모르겠지만 분명히 그렇습니다.없이 시도했지만 작동하지 않았습니다)grub2-install /dev/sda
따다! 볼륨은 재부팅시 활성화됩니다. 그것을 추가 fstab
하고 즐기십시오! :)
이 기사는 인터넷에서 수집됩니다. 재 인쇄 할 때 출처를 알려주십시오.
침해가 발생한 경우 연락 주시기 바랍니다[email protected] 삭제
몇 마디 만하겠습니다