부팅 로그에 다음과 같은 줄이 남는다.
Started Cancel waiting for multipath siblings of nvme0n1
multipath 는 같은 스토리지에 이르는 여러 경로(FC · iSCSI · SAS · NVMe-oF) 를 하나의 장치로 묶는 기능이다. 부팅 중 systemd 는 어떤 장치가 multipath 구성원인지 판단하기 위해 잠시 기다리는데, 형제 경로(sibling) 가 나타나지 않으면 대기를 취소하고 넘어간다. 위 메시지는 그 취소를 알리는 것이다.
즉 오류가 아니라 정보성 로그 다. 단일 경로 NVMe SSD 한 장을 쓰는 서버에서 multipath 가 켜져 있으면 매 부팅마다 나온다. 부팅이 느려지거나 장치가 안 보이는 문제가 없다면 그냥 두어도 된다.
systemctl status multipathd
multipath -ll
nvme list
lsblk -o NAME,SIZE,TYPE,MOUNTPOINT
cat /proc/cmdline | tr ' ' '\n' | grep -i multipath
multipath -ll 에 아무것도 없는데 multipathd 가 돌고 있다면, 이 서버에는 multipath 로 묶을 대상이 없다는 뜻이다.
NVMe 는 커널 자체에 멀티패스 기능이 따로 있다는 점이 헷갈리는 부분이다.
cat /sys/module/nvme_core/parameters/multipath
Y 면 커널의 NVMe 네이티브 멀티패스가 켜져 있다. 이 경우 device-mapper multipath(multipathd) 가 NVMe 를 다룰 필요가 없다. 둘이 동시에 관여하면 장치 이름이 꼬인다.
multipath 에서 NVMe 를 제외한다.
blacklist {
devnode "^nvme.*"
}
/etc/multipath.conf 에 넣고 반영한다.
multipath -t | head -n 30
systemctl restart multipathd
multipath -ll
multipath 자체가 아예 필요 없다면 서비스를 끄는 것이 더 깔끔하다. 다만 루트 파일 시스템이 multipath 장치 위에 있으면 절대 끄지 않는다.
systemctl disable --now multipathd
/etc/multipath.conf 를 지우면 multipathd 가 기본 설정으로 돌아간다. 파일을 비우는 것과 지우는 것은 동작이 다르므로, 명시적으로 비활성화 설정을 남기는 편이 안전하다.
경로가 실제로 여러 개 잡히는지부터 확인한다.
nvme list-subsys
multipath -ll
경로가 하나만 보인다면 스토리지 쪽 존이나 네트워크 설정을 본다. 대기 취소 로그는 결과이지 원인이 아니다.
커널 네이티브 멀티패스를 쓸지 device-mapper 를 쓸지 정하고 한쪽으로 통일한다. 커널 파라미터로 전환한다.
grubby --update-kernel ALL --args="nvme_core.multipath=Y"
/etc/multipath.conf 를 고친 뒤에는 initramfs 를 다시 만들어야 부팅 초기 단계에 반영된다.dracut -f
wwid 로 특정 장치만 제외할 수도 있다. devnode 정규식은 범위가 넓으므로 필요한 만큼만 쓴다.