재부팅할 때마다 디스크 마운트 지점이 일관되지 않습니다. fstab에서 UUID 사용

재부팅할 때마다 디스크 마운트 지점이 일관되지 않습니다. fstab에서 UUID 사용

mount 명령을 사용하여 디스크를 수동으로 마운트할 수 있는 문제가 있습니다. 그런 다음 디스크를 fstab에 추가했습니다. 재부팅 후: sda1은 올바른 마운트 지점(/mnt/da)을 가리키지만 나머지는 그렇지 않습니다. 도와주세요. 아이디어가 없습니다.

서버 설정:

  • 소프트웨어 raid1의 NVME 드라이브 2개
  • 10x 16TB 드라이브, RAID 없음, 독립 디스크(초기 설정 후 이러한 디스크에서 RAID를 제거해야 함)
  • 운영 체제: 데비안 12
  • xfs 파일 시스템
  • blkid 명령에서 얻은 UUID를 사용하여 장치를 fstab에 추가했습니다.

시험을 마친:

  • 수동으로 디스크 마운트
  • 한 번에 하나의 디스크를 마운트해 보세요.
  • fstab에 한 번에 하나의 디스크를 추가하고 다시 로드해 보세요.
  • fstab에 모든 디스크를 추가하고 다시 마운트해 보세요.

df-h

root@data7 ~ # df -h
Filesystem      Size  Used Avail Use% Mounted on
udev             63G     0   63G   0% /dev
tmpfs            13G  896K   13G   1% /run
/dev/md2        875G 1013M  829G   1% /
tmpfs            63G     0   63G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
/dev/md1        989M   66M  873M   7% /boot
/dev/sdb1        15T  104G   15T   1% /mnt/db
/dev/sdd1        15T  104G   15T   1% /mnt/dc
/dev/sda1        15T  104G   15T   1% /mnt/da
tmpfs            13G     0   13G   0% /run/user/0

LSBLK

root@data7 ~ # lsblk
NAME        MAJ:MIN RM   SIZE RO TYPE  MOUNTPOINTS
sda           8:0    0  14.6T  0 disk
└─sda1        8:1    0  14.6T  0 part  /mnt/da
sdb           8:16   0  14.6T  0 disk
└─sdb1        8:17   0  14.6T  0 part  /mnt/db
sdc           8:32   0  14.6T  0 disk
└─sdc1        8:33   0  14.6T  0 part
sdd           8:48   0  14.6T  0 disk
└─sdd1        8:49   0  14.6T  0 part  /mnt/dc
sde           8:64   0  14.6T  0 disk
└─sde1        8:65   0  14.6T  0 part
sdf           8:80   0  14.6T  0 disk
└─sdf1        8:81   0  14.6T  0 part
sdg           8:96   0  14.6T  0 disk
└─sdg1        8:97   0  14.6T  0 part
sdh           8:112  0  14.6T  0 disk
└─sdh1        8:113  0  14.6T  0 part
sdi           8:128  0  14.6T  0 disk
└─sdi1        8:129  0  14.6T  0 part
sdj           8:144  0  14.6T  0 disk
└─sdj1        8:145  0  14.6T  0 part
sdk           8:160  0  57.7G  0 disk
nvme0n1     259:0    0 894.3G  0 disk
├─nvme0n1p1 259:1    0     4G  0 part
│ └─md0       9:0    0     4G  0 raid1 [SWAP]
├─nvme0n1p2 259:2    0     1G  0 part
│ └─md1       9:1    0  1022M  0 raid1 /boot
└─nvme0n1p3 259:3    0 889.3G  0 part
  └─md2       9:2    0 889.1G  0 raid1 /
nvme1n1     259:4    0 894.3G  0 disk
├─nvme1n1p1 259:5    0     4G  0 part
│ └─md0       9:0    0     4G  0 raid1 [SWAP]
├─nvme1n1p2 259:6    0     1G  0 part
│ └─md1       9:1    0  1022M  0 raid1 /boot
└─nvme1n1p3 259:7    0 889.3G  0 part
  └─md2       9:2    0 889.1G  0 raid1 /

쿠로코

GETTING UUID
root@data7 ~ # blkid | g sda
/dev/sda1: UUID="cea5e8d9-1ddf-4502-a609-3a17af37082c" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="d0a89050-f533-7245-877e-5006d974516c"
root@data7 ~ # blkid | g sdb
/dev/sdb1: UUID="e3ae1145-d37b-41d7-ac1f-5c6a646bd5ed" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="da1f85c1-9054-d147-a9b8-0965020b4d67"
root@data7 ~ # blkid | g sdc
/dev/sdc1: UUID="47bf4e70-ec50-4369-88c2-9dfd8dd5d422" BLOCK_SIZE="4096" TYPE="xfs" PARTUUID="f458a5c3-6b6c-054d-a069-27930dcb02f2"

시스템 테이블

/etc/fstab - WAS CORRECT BEFORE RESTART .. CHANGED IT 5+ TIMES AND BREAKS AFTER EVERY RESTART
proc /proc proc defaults 0 0
# /dev/md/0
UUID=e2f568f6-846b-4657-b88d-3c8108d5600c none swap sw 0 0
# /dev/md/1
UUID=a5868f6d-b7e5-43b1-ab81-4770a543d83a /boot ext3 defaults 0 0
# /dev/md/2
UUID=612c81e1-94e4-415e-863f-6dfcbe127dee / ext4 defaults 0 0
# /dev/sda1
UUID=cea5e8d9-1ddf-4502-a609-3a17af37082c /mnt/da xfs defaults 0 2
# /dev/sdb1
UUID=e3ae1145-d37b-41d7-ac1f-5c6a646bd5ed /mnt/db xfs defaults 0 2
# /dev/sdc1
UUID=2b28f001-d9a0-4759-8f29-4bf45a18aeb6 /mnt/dc xfs defaults 0 2

내 다른 서버(재부팅 후에도 장치 이름이 유지되지 않는다는 의견에 대한 응답)

root@data2:~$ df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            126G     0  126G   0% /dev
tmpfs            26G  1.3G   24G   6% /run
/dev/sda3       5.5T  4.9T  246G  96% /
tmpfs           126G     0  126G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           126G     0  126G   0% /sys/fs/cgroup
/dev/sda2       923M   79M  781M  10% /boot
/dev/sde1       5.5T  5.0T  236G  96% /mnt/de
/dev/sdf1       5.5T  4.1T  1.2T  79% /mnt/df
/dev/sdd1       5.5T  4.7T  468G  92% /mnt/dd
/dev/sdc1       5.5T  5.1T   49G 100% /mnt/dc
/dev/sdb1       5.5T  5.1T   74G  99% /mnt/db
tmpfs            26G     0   26G   0% /run/user/1000
tmpfs            26G     0   26G   0% /run/user/0

root@data3:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            126G     0  126G   0% /dev
tmpfs            26G  2.5G   23G  10% /run
/dev/sda3       5.5T  4.2T  1.1T  81% /
tmpfs           126G     0  126G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           126G     0  126G   0% /sys/fs/cgroup
/dev/sda2       923M   79M  781M  10% /boot
/dev/sdc1        11T   11T  660G  95% /mnt/df
/dev/sdf1        11T  9.2T  1.8T  84% /mnt/de
/dev/sdd1        11T  9.8T  1.2T  90% /mnt/dc
/dev/sde1        11T   11T  191G  99% /mnt/dd
/dev/sdb1        11T   11T  855G  93% /mnt/db
tmpfs            26G     0   26G   0% /run/user/1001
tmpfs            26G     0   26G   0% /run/user/0


root@data4:~# df -h
Filesystem      Size  Used Avail Use% Mounted on
udev            126G     0  126G   0% /dev
tmpfs            26G  2.5G   23G  10% /run
/dev/sda3        11T   11T  249G  98% /
tmpfs           126G     0  126G   0% /dev/shm
tmpfs           5.0M     0  5.0M   0% /run/lock
tmpfs           126G     0  126G   0% /sys/fs/cgroup
/dev/sda2       923M   80M  781M  10% /boot
/dev/sdc1        11T  9.3T  1.7T  85% /mnt/dc
/dev/sdd1        11T  9.0T  2.0T  82% /mnt/dd
/dev/sdb1        11T  9.8T  1.2T  90% /mnt/db
tmpfs            26G     0   26G   0% /run/user/1002
tmpfs            26G     0   26G   0% /run/user/1000
tmpfs            26G     0   26G   0% /run/user/1005
tmpfs            26G     0   26G   0% /run/user/0

답변1

재부팅 시 장치 ID의 일관성이 보장되지 않습니다...

잘못된 용어를 사용하셨습니다.

6가지 설치 방법이 있습니다.디스크Linux에서는 /dev/diskRHEL-7.9를 사용하고 있습니다.

by-id/ by-label/ by-partlabel/ by-partuuid/ by-path/ by-uuid/

ID별scsi 식별자 또는 wwn(월드와이드 번호) 식별자입니다.

신뢰할 수 없는(또는 일관성 없는) 설치 방법장치 이름으로예를 들어, 이것은 당신이 /dev/sdb1 /data하고 있던 일인데 /etc/fstab잘못 호출되었습니다.장치 ID. ID는 일치하지만 장치 이름(sda, sdb, sdc 등)은 일치하지 않습니다.

이 6개 폴더 /dev/disk/아래의 모든 항목은 { /dev/sda2예를 들어} 장치 이름 위에 링크되어 있음을 알 수 있습니다.

댓글에서 언급했듯이,장치 이름시작 후 장치가 인식된 순서에 따라 매핑이 수행됩니다. SATA 케이블을 통해 연결된 새 디스크를 추가하고 디스크 끝에 넣지 마십시오.sda, sdb, sdc...목록. 앞쪽에 배치되는 경우가 많습니다sda그러면 모든 것이 아래로 움직이기 때문에 불일치가 발생합니다. 두 개의 디스크와 마더보드에 연결된 SATA 포트를 교체하면 됩니다. 동일한 문제입니다.

  • 패스-UUID매우 일관적이므로 이름이 붙었습니다.범용 고유 ID
  • ID별scsi id 또는 wwn id와 같은 정보도 매우 안정적이어야 하며 wwn디스크 레이블에서 자주 찾을 수 있습니다.
  • 태그로동일한 레이블 이름으로 여러 디스크(실제로는 파티션)에 레이블을 지정하는 등의 작업을 수행할 때까지 안정적이어야 합니다.
  • 제 생각에는우회로디스크가 다른 SAT/SAS 포트에 연결된 경우 이제 다른 경로가 되므로 일관성이 없습니다.

답변2

AFAIK 과거에는 디스크 순서가 감지 순서에 따라 엄격하게 정의되었습니다. 기본 IDE 마스터 = hda, 슬레이브 = hdb; 보조 IDE 마스터 = hdc, 슬레이브 = hdd. 새로운 하드웨어로 인해 SATA 채널이 도입되어 장치 식별자가 sda, sdb 등으로 변경되었습니다. 하드웨어 변경 외에도 부팅 응답도 변경되었습니다. 시작 소프트웨어도 일부 변경되었습니다. BIOS(또는 uEFI), 부트 ​​로더 및 시스템 부팅은 모두 더 많은 CPU 코어를 사용하여 시작됩니다. 디렉토리에 "알파벳순"으로 정의된 엄격한 순서가 아닌 병렬로 더 많은 독립적인 구성요소를 시작할 수 있도록 init데비안 (및 기타)이 SysV에서 벗어났다는 것을 알 수 있습니다 . 존재하다systemd/etc/rc3.d슈뢰딩거의 호기심댓글 링크는 다음과 같습니다.

...첫 번째 하드 드라이브감지됨이름은 /dev/sda...

즉, 디스크는 SysV를 사용하여 표준 순서로 폴링되지만 init디스크 systemd감지는 병렬로 수행됩니다. 즉, 감지된 첫 번째 디스크가 첫 번째 SATA 채널에 연결된 디스크일 필요는 없습니다. 첫 번째 접촉은 BIOS(uEFI)와 연결된 PCI(e) 카드의 BIOS ROM(예: SCSI(SAS))에 의해 이루어집니다. 따라서 회전 디스크는 전원을 켠 후 부팅하는 데 더 많은 시간이 걸리므로 디스크 감지 순서에 의존할 수 없습니다. , 그러나 웜 스타트 직후에는 감지될 수 있습니다. 이것이 마운트할 디스크 파티션을 식별하기 위해 UUID와 LABEL이 추가된 이유입니다. 따라서 fstab(Debian 기반 Linux)에서 다음을 볼 수 있습니다.

# / was on /dev/sda1 during installation
UUID=98765432-9876-abcd-9090-1234567890ab / ext4 ...

뭘 바꿀 수 있어?

LABEL=mysda1 / ext4 ...

파티션의 LABEL이 다음으로 설정된 경우미스다 1. IDE나 SATA 디스크에는 NIC의 MAC 주소와 같은 표준 식별자가 없습니다.

답변3

장치이름 (ID로 변경됨)재부팅 시 일관성이 보장되지 않습니다. fstab에서 UUID를 사용하면 디스크가 항상 동일한 경로를 가리키도록 마운트됩니다. 장치 ID가 변경되더라도 /mnt/da, /mnt/db...etc에 있는 데이터는 해당 위치에 계속 유지됩니다.

의견을 주신 @frostschutz와 다른 분들께 감사드립니다.

관련 정보