6버전 은 다음과 같이 합니다
리눅스를 설치 하고..
로컬디스크가 있다면 /dev/sda 로 올라옵니다
하지만 외부 스토리지를 연결 하면..... 로컬디스크가 /dev/sda가 아닌 /dev/sdX 로 변경 되는 상황일 때가 있습니다
사용상 문제는 없지만.... 보기 않좋습니다
원인은... OS 에서 disk장치를 스캔해서 캐릭터화일로 /dev/에 저장되는데 고정된 값이 아닌, 부팅시 마다 스캔되어 새로이 할당 되어집니다
하지만 스캔시 순서가 서버 RAID 카드부터 하느것이 아니라 pci 장치 부터 하게됩니다
예를들어 FC 케이블을 연결을 하게 되면, 로컬디스크 부터 매핑을하여 할당을 하는게 아니라, pci 장치 부터 매핑을 하게되어,
/dev/sda는 스토리지 디스크가 첫번째로 할당되어 지며 마지막에는 localdisk가 할당받게 되며 그러므로 인하여 ((ex)/dev/sdck(스토리지 디스크 개수에 따라 장치명은 다르게 할당 됨) 인식되어집니다.
그래서 scan 순서를 PCI 장치 부터가 아닌, localdisk가 먼저 스캔 되도록, 수정 해보려합니다
lspci 명령어를 통하여 현재 설치 되어진 PCI 장치를 검색 합니다
1. lspci 명령어를 사용하여 RAID 카드 및 HBA카드를 확인 합니다
06:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2004 PCI-Express Fusion-MPT SAS-2 [Spitfire] (rev 03) < -레이드 카드
16:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02) <- HBA카드
16:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02) <- HBA카드
2. lspci -k 를 사용하여 해당 장치가 사용하는 module을 검색 합니다
06:00.0 Serial Attached SCSI controller: LSI Logic / Symbios Logic SAS2004 PCI-Express Fusion-MPT SAS-2 [Spitfire] (rev 03)
Subsystem: IBM Device 03f8
Kernel driver in use: mpt2sas
Kernel modules: mpt2sas
16:00.0 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
Subsystem: QLogic Corp. Device 0175
Kernel driver in use: qla2xxx
Kernel modules: qla2xxx
16:00.1 Fibre Channel: QLogic Corp. ISP2532-based 8Gb Fibre Channel to PCI Express HBA (rev 02)
Subsystem: QLogic Corp. Device 0175
Kernel driver in use: qla2xxx
Kernel modules: qla2xxx
HBA는 qla2xxx 모듈을 ,RAID 카드는 mpt2sas 모듈을 사용 하고 있습니다
또한 lsmod 명령어로 확인 module 설치 된 모듈을 확인 합니다
mpt2sas 186848 1668
mpt3sas 189407 3
qla2xxx 467565 168
3./etc/grub.conf 에 다음을 추가 합니다
==> The following arguments simply needed to be appended to the kernel line.
rdloaddriver=mpt2sas,mpt3sas,qla2xxx
4. modprobe 설정 추가
/etc/modprobe.d/storage-driver-order.conf
install qla2xxx { /sbin/modprobe mpt2sas mpt3sa qla2xxx ; } ; /sbin/modprobe --first-time --ignore-install qla2xxx
5. initrd 파일을 재생성 합니다
- img 백업 합니다
1) cp /boot/initramfs-$(uname -r).img /boot/initramfs-$(uname -r).img.$(date +%m-%d-%H%M%S).bak
2) dracut -f -v 명령어로 img를 재생성 합니다
3) 서버 reboot
6. 확인
df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 881M 46G 2% /
tmpfs 7.5G 152K 7.5G 1% /dev/shm
/dev/sda9 5.0G 138M 4.6G 3% /admin
/dev/sda1 200M 264K 200M 1% /boot/efi
/dev/sda5 20G 2.3G 17G 13% /home
/dev/sda8 9.9G 187M 9.2G 2% /opt
/dev/sda4 20G 173M 19G 1% /tmp
/dev/sda6 20G 13G 5.7G 70% /usr
/dev/sda3 20G 3.0G 16G 16% /var
fdisk -l 시 화면
Disk /dev/sda: 499.0 GB, 498999492608 bytes
255 heads, 63 sectors/track, 60666 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000
Device Boot Start End Blocks Id System
/dev/sda1 1 60667 487304191+ ee GPT
----------------------------------------------------------
이건 퍼왔습니다 (이방법은 스토리지를 빼고 하세요)
1. 아래 두가지 명령중 하나로 디스크의 WWID 를 확인
[root@RHCS-NODE02 ~]# scsi_id -g -u /dev/sdb
[root@RHCS-NODE02 ~]# scsi_id --whitelisted --replace-whitespace --device=/dev/sdb
2. 확인된 WWID를 바탕으로 아래처럼 작성.
[root@RHCS-NODE02 ~]# vi /etc/udev/rules.d/20-names.rules
KERNEL=="sd*", BUS=="scsi", PROGRAM=="/sbin/scsi_id --whitelisted --replace-whitespace --device=%N", RESULT=="특정 WWID", SYMLINK+="sdz%n"
-> RESULT=="특정 WWID" 부분 " " 안에 WWID 입력
-> SYMLINK+="sdz%n" 부분에 심볼릭링크할 장치명 입력(여기서는 sdz 지정, 만약 sda로 지정한다면 이미 sda가 있기 때문에 변경이 되지 않는다.)
3. 제대로 작성이 되었는지 확인
[root@RHCS-NODE02 ~]# udevadm test /block/sdb 2>&1 | grep sdz
4.적용 하기
[root@RHCS-NODE02 ~]# start_udev
5. 장치 확인
[root@RHCS-NODE02 ~]# ls -la /dev/sdz
lrwxrwxrwx 1 root root 3 Mar 27 11:17 /dev/sdz -> sda
7버전 적용 방법입니다
RHEL7 에서 스토리지 연결시 local드라이브 가 sda 에서 sdx 로 변하는 문제? 에대해서 해결 방법입니다 6버전과 조금 다릅니다
1. 리눅스는 PCI SLOT에 HBA 과 같은 장치에 다른 스토리지 가 연결 되었을시
- pci SLOT 에 연결된 디스크부터 sda으로 명명 되어 마지막에 local disk가 sdX로 명 됩니다.
해결 방법은 다음과 같습니다
- 디스크 스캔 방식을 local disk가 처음 명명되게 하고 그담에 HBA카드에 연결된 디스크가 스캔되도록 수정 합니다
lspci -v 로 RAID CONTROLLER 와 HBA카드의 drive module을 찾아 찾아낸후
/etc/sysconfig/grub 화일에 다음과 같이 수정 및 추가 해줍니다
GRUB_CMDLINE_LINUX="rd.lvm.lv=rootvg/rootlv rd.lvm.lv=rootvg/swaplv rd.driver.pre=RAIDCOMTROLLER MODULE,HBA모듈"
그리고 난후
On BIOS-based machines: ~]# grub2-mkconfig -o /boot/grub2/grub.cfg
On UEFI-based machines: ~]# grub2-mkconfig -o /boot/efi/EFI/redhat/grub.cfg
그리고 reboot 하시면 해결 됩니다
첫댓글 감사합니다.^^