Knowledge Base/Linux

xfs+multipath 구성

Woos™ 2010. 3. 23. 17:05
1. Linux 기본 Driver 와 DM-Multipath를 활용한다.
  - /etc/modprobe.conf 수정
-------------------------------------------------------------------

[root@localhost ~]# cat /etc/modprobe.conf
alias eth0 tg3
alias eth1 tg3
alias scsi_hostadapter ata_piix
alias scsi_hostadapter1 qla2xxx
alias scsi_hostadapter2 qla2xxx
alias scsi_hostadapter3 usb-storage
#options qla2xxx ql2xmaxqdepth=16 qlport_down_retry=10
options qla2xxx ql2xmaxqdepth=16 qlport_down_retry=10 ql2xloginretrycount=30
[root@localhost ~]#


-------------------------------------------------------------------
2. Fdisk -l 로 패스 확인한다.
  - 1개의 Volume에 4개의 Disk 정보가 보여진다.
-------------------------------------------------------------------

[root@localhost test_97G]# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        6540    52428127+  83  Linux
/dev/sda3            6541        6801     2096482+  82  Linux swap / Solaris

Disk /dev/sdb: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdc: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sdd: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

Disk /dev/sde: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System

-------------------------------------------------------------------
3. 100GB Volume에 2개의 logical Volume을 구성한다.
   - Volume 구성을 할땐 실제 Device 를 갖고 구성한다.
-------------------------------------------------------------------
[root@localhost ~]# fdisk /dev/sdb

The number of cylinders for this disk is set to 13054.
There is nothing wrong with that, but this is larger than 1024,
and could in certain setups cause problems with:
1) software that runs at boot time (e.g., old versions of LILO)
2) booting and partitioning software from other OSs
   (e.g., DOS FDISK, OS/2 FDISK)

Command (m for help): p

Disk /dev/sdb: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1217     9775521   83  Linux
/dev/sdb2            1218       13054    95080702+  83  Linux

Command (m for help):

-------------------------------------------------------------------
4. Multipath Daemon 을 재시작 한다.
-------------------------------------------------------------------
[root@localhost ~]# /etc/init.d/multipathd restart
dm_task_set_name: Device /dev/sda2 not found
Command failed
Stopping multipathd daemon:                                [  OK  ]
Starting multipathd daemon:                                [  OK  ]
[root@localhost ~]#

-------------------------------------------------------------------
5. multipath.conf 설정을 한다.
-------------------------------------------------------------------
[root@localhost ~]# vi /etc/multipath.conf

blacklist 에 내용을 추가한다.
  - sda (Local Disk Information)

blacklist {
#       wwid 26353900f02796769
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st|sda)[0-9]*"
        devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
       devnode "^hd[a-z]"
}

예시 --------------------------------------------------
blacklist {
       wwid 26353900f02796769
        devnode "^(ram|raw|loop|fd|md|dm-|sr|scd|st)[0-9]*"
        devnode "^hd[a-z][[0-9]*]"
        devnode "^cciss!c[0-9]d[0-9]*[p[0-9]*]"
        device {
                vendor DEC.*
                product MSA[15]00
        }
}
예시 -------------------------------------------------- 끝


아래 내용을 추가한다.

        device {
                vendor "HP"
                product "HSV200"
                path_grouping_policy group_by_prio
                getuid_callout "/sbin/scsi_id -g -u -s /block/%n"
                path_checker tur
                path_selector "round-robin 0"
                prio_callout "/sbin/mpath_prio_alua %n"
                rr_weight uniform
                rr_min_io 100
                failback immediate
                no_path_retry 60
        }

-------------------------------------------------------------------
6. multipath 정보 보기
-------------------------------------------------------------------

[root@localhost ~]# multipath -F
[root@localhost ~]# multipath -v2
create: mpath2 (3600508b400070e570001b000001b0000)  HP,HSV200
[size=100G][features=0][hwhandler=0][n/a]
\_ round-robin 0 [prio=100][undef]
\_ 2:0:1:1 sdc 8:32  [undef][ready]
\_ 3:0:1:1 sde 8:64  [undef][ready]
\_ round-robin 0 [prio=20][undef]
\_ 2:0:0:1 sdb 8:16  [undef][ready]
\_ 3:0:0:1 sdd 8:48  [undef][ready]
[root@localhost ~]#

-------------------------------------------------------------------
6. Device 정보 보기
  - dm-1, dm-2
-------------------------------------------------------------------
[root@localhost ~]# fdisk -l

Disk /dev/sda: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *           1          13      104391   83  Linux
/dev/sda2              14        6540    52428127+  83  Linux
/dev/sda3            6541        6801     2096482+  82  Linux swap / Solaris

Disk /dev/sdb: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1               1        1217     9775521   83  Linux
/dev/sdb2            1218       13054    95080702+  83  Linux

Disk /dev/sdc: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdc1               1        1217     9775521   83  Linux
/dev/sdc2            1218       13054    95080702+  83  Linux

Disk /dev/sdd: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sdd1               1        1217     9775521   83  Linux
/dev/sdd2            1218       13054    95080702+  83  Linux

Disk /dev/sde: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

   Device Boot      Start         End      Blocks   Id  System
/dev/sde1               1        1217     9775521   83  Linux
/dev/sde2            1218       13054    95080702+  83  Linux

Disk /dev/dm-0: 107.3 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

     Device Boot      Start         End      Blocks   Id  System
/dev/dm-0p1               1        1217     9775521   83  Linux
/dev/dm-0p2            1218       13054    95080702+  83  Linux

Disk /dev/dm-1: 10.0 GB, 10010133504 bytes
255 heads, 63 sectors/track, 1216 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-1 doesn't contain a valid partition table

Disk /dev/dm-2: 97.3 GB, 97362639360 bytes
255 heads, 63 sectors/track, 11837 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes

Disk /dev/dm-2 doesn't contain a valid partition table
[root@localhost ~]#


-------------------------------------------------------------------
7. Disk Format 하기
  - Format 은 만들어진 Device 로 진행 합니다.
  - /dev/dm-1(10GB), /dev/dm-2(90GB) 입니다.
-------------------------------------------------------------------
[root@localhost ~]# mkfs.ext3 /dev/dm-1
mke2fs 1.39 (29-May-2006)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
1224000 inodes, 2443880 blocks
122194 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2503999488
75 block groups
32768 blocks per group, 32768 fragments per group
16320 inodes per group
Superblock backups stored on blocks:
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632

Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

This filesystem will be automatically checked every 31 mounts or
180 days, whichever comes first.  Use tune2fs -c or -i to override.
[root@localhost ~]#

-------------------------------------------------------------------
8. Booting 후 자동 시작 하기(자동으로 올리기)
-------------------------------------------------------------------
[root@localhost ~]# chkconfig --level 2345 multipathd on

그 후에 Fstab에 내용을 넣어 준다.

이상 끝..

참조 URL
http://h20000.www2.hp.com/bizsupport/TechSupport/SoftwareDescription.jsp?lang=en&cc=us&prodTypeId=12169&prodSeriesId=3559651&swItem=co-68651-1&prodNameId=3559652&swEnvOID=4006&swLang=13&taskId=135&mode=4&idx=0#install_DMtools