반응형
OS에서 Multi라는 용어는 Oracle에서 HA와 동등한 의미가 아닐까 싶다. system의 High Available을 위해 이중, 삼중으로 구성해 놓는 것을 의미한다. Disk 역시 여러개의 스위치를 통해 하나의 스위치에 문제가 생겼을 때 다른 스위치를 사용하여 Disk의 고가용성을 위해 Multipath라는 것을 설정한다. 이번 포스팅에서는 multipath 설정에 대해 간단히 알아보도록 한다.
친절한 아잇티에게 무엇이든 물어보세요!
글, 사진 ▶ 아잇티
# 사진을 제외한 제 블로그의 모든 글들은 공유 가능합니다.
# 공유 시 출처 및 댓글은 센스있게 부탁드립니다.
# 해당 포스팅 내용 외에 궁금한 점이나 추가사항은 댓글 부탁드립니다.
# 저는 친절합니다. 다가오세요... 해치지 않아요!
Step 1. LUN 단위의 Disk 추가
현재 Disk 상황은 아래와 같다. 파란색으로 표시 된 부분이 LUN 단위로 던져지 2개의 Disk이다. 해당 Disk의 멀티패스를 잡아보도록 하자.
[root@test ~]# fdisk -l /dev/dm*
Disk /dev/dm-0: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/dm-1: 10.7 GB, 10737418240 bytes, 20971520 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/dm-2: 31.7 GB, 31679578112 bytes, 61874176 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/dm-3: 53.7 GB, 53687091200 bytes, 104857600 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/dm-4: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk /dev/dm-5: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Step 2. Multipath를 위한 RPM 설치
기본적으로 device-mapper-multipath, device-mapper-multipath-libs 2개의 rpm이 필요하며 우리는 dependancy를 위하여 yum을 사용하도록 하자.
외부와 네트웍이 연결되어 있지 않고 OS binary만 있다면 아래 포스팅을 참고하여 yum을 사용하도록 하자.
[root@test ~]# yum install *mapper*
Loaded plugins: product-id, search-disabled-repos, subscription-manager
This system is not registered with an entitlement server. You can use subscription-manager to register.
Package device-mapper-persistent-data-0.7.0-0.1.rc6.el7.x86_64 already installed and latest version
Package 7:device-mapper-event-libs-1.02.140-8.el7.x86_64 already installed and latest version
Package 7:device-mapper-1.02.140-8.el7.x86_64 already installed and latest version
Package 7:device-mapper-libs-1.02.140-8.el7.x86_64 already installed and latest version
Package 7:device-mapper-event-1.02.140-8.el7.x86_64 already installed and latest version
Resolving Dependencies
--> Running transaction check
---> Package device-mapper-multipath.x86_64 0:0.4.9-111.el7 will be installed
---> Package device-mapper-multipath-libs.x86_64 0:0.4.9-111.el7 will be installed
--> Processing Dependency: librados.so.2()(64bit) for package: device-mapper-multipath-libs-0.4.9-111.el7.x86_64
--> Running transaction check
---> Package librados2.x86_64 1:0.94.5-2.el7 will be installed
--> Processing Dependency: libboost_system-mt.so.1.53.0()(64bit) for package: 1:librados2-0.94.5-2.el7.x86_64
--> Processing Dependency: libboost_thread-mt.so.1.53.0()(64bit) for package: 1:librados2-0.94.5-2.el7.x86_64
--> Running transaction check
---> Package boost-system.x86_64 0:1.53.0-27.el7 will be installed
---> Package boost-thread.x86_64 0:1.53.0-27.el7 will be installed
--> Finished Dependency Resolution
Dependencies Resolved
====================================================================================================================================
Package Arch Version Repository Size
====================================================================================================================================
Installing:
device-mapper-multipath x86_64 0.4.9-111.el7 ol7_latest 133 k
device-mapper-multipath-libs x86_64 0.4.9-111.el7 ol7_latest 249 k
Installing for dependencies:
boost-system x86_64 1.53.0-27.el7 ol7_latest 40 k
boost-thread x86_64 1.53.0-27.el7 ol7_latest 57 k
librados2 x86_64 1:0.94.5-2.el7 ol7_latest 1.7 M
Transaction Summary
====================================================================================================================================
Install 2 Packages (+3 Dependent packages)
Total download size: 2.1 M
Installed size: 6.0 M
Is this ok [y/d/N]: y
Downloading packages:
------------------------------------------------------------------------------------------------------------------------------------
Total 822 kB/s | 2.1 MB 00:00:02
Running transaction check
Running transaction test
Transaction test succeeded
Running transaction
Installing : boost-system-1.53.0-27.el7.x86_64 1/5
Installing : boost-thread-1.53.0-27.el7.x86_64 2/5
Installing : 1:librados2-0.94.5-2.el7.x86_64 3/5
Installing : device-mapper-multipath-libs-0.4.9-111.el7.x86_64 4/5
Installing : device-mapper-multipath-0.4.9-111.el7.x86_64 5/5
Verifying : boost-system-1.53.0-27.el7.x86_64 1/5
Verifying : device-mapper-multipath-0.4.9-111.el7.x86_64 2/5
Verifying : 1:librados2-0.94.5-2.el7.x86_64 3/5
Verifying : boost-thread-1.53.0-27.el7.x86_64 4/5
Verifying : device-mapper-multipath-libs-0.4.9-111.el7.x86_64 5/5
Installed:
device-mapper-multipath.x86_64 0:0.4.9-111.el7 device-mapper-multipath-libs.x86_64 0:0.4.9-111.el7
Dependency Installed:
boost-system.x86_64 0:1.53.0-27.el7 boost-thread.x86_64 0:1.53.0-27.el7 librados2.x86_64 1:0.94.5-2.el7
Complete!
RPM 설치가 완료된 후 아래 명령을 수행해보면 일단 RPM은 정상 설치된 것으로 판단할 수 있다.
[root@test ~]# multipath -l
Jul 04 13:06:37 | DM multipath kernel driver not loaded
Jul 04 13:06:37 | /etc/multipath.conf does not exist, blacklisting all devices.
Jul 04 13:06:37 | A default multipath.conf file is located at
Jul 04 13:06:37 | /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf
Jul 04 13:06:37 | You can run /sbin/mpathconf to create or modify /etc/multipath.conf
Jul 04 13:06:37 | DM multipath kernel driver not loaded
Step 3. Multipath 설정
위에서 빨간색으로 표시한 것과 같이 /etc/ 밑에 multipath.conf 파일을 찾지 못해 multipath -l 이라는 명령이 먹지 않는 것을 볼 수 있다. 일단 설정 파일을 만들어보자. 설정 파일은 아래와 같이 해당 경로에서 복사해 사용하면 된다.
[root@test ~]# cp /usr/share/doc/device-mapper-multipath-0.4.9/multipath.conf /etc/
- multipath.conf file 생성(복사)
[root@test ~]# multipath -l
Jul 04 13:07:06 | DM multipath kernel driver not loaded
Jul 04 13:07:06 | DM multipath kernel driver not loaded
- 아까와는 다른 메세지를 확인할 수 있다. conf 파일은 인식하지만 multipath driver가 로드되지 않아 발생하는 메세지다.
[root@test ~]# systemctl start multipathd
- multipath driver 기동
[root@test ~]# multipath -l
- driver가 로드되지 않았다는 메세지는 사라지고 아무런 값도 출력되지 않는다.
[root@test ~]# vi /etc/multipath.conf
- 아래와 같이 수정해보자.
## Use user friendly names, instead of using WWIDs as names.
defaults {
user_friendly_names yes
find_multipaths no (Default value는 yes이다. no로 변경하도록한다.)
}
(multipath.conf 파일 가장 하단에 추가. 해당 부분은 multipath로 지정하지 않을 device를 선택한다. local disk이기 때문에 제외하도록 한다.)
blacklist {
devnode "/dev/sd*"
}
[root@test ~]# systemctl restart multipathd
- multipath driver load
[root@test ~]# multipath -l
mpathb (36000c2979ec78550dd86289304fc7642) dm-5 VMware ,Virtual disk
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
`- 3:0:1:0 sdc 8:32 active undef unknown
mpatha (36000c29540048b9248c80212f2dd44d9) dm-4 VMware ,Virtual disk
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
`- 3:0:0:0 sdb 8:16 active undef unknown
- 이전과는 다르게 multipath가 잡혀있는 것을 확인할 수 있다.
[root@test ~]# for i in `ls /dev/mapper`
> do
> UUID=`udevadm info --query=all --name=/dev/mapper/$i|grep -i dm_uuid|awk -F"=" '{print $2}'`
> echo "KERNEL==\"dm-*\",ENV{DM_UUID}==\"$UUID\",OWNER=\"grid\",GROUP=\"asmadmin\",MODE=\"0660\""|grep mpath
> done
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29540048b9248c80212f2dd44d9",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c2979ec78550dd86289304fc7642",OWNER="grid",GROUP="asmadmin",MODE="0660"
- 해당 절차는 서버가 재기동 돼도 해당 disk에 ownership이 자동 부여되도록 하기위한 명령이다. 굵게 표시된 명령을 수행하면 아래와 같은 결과 값을 얻을 수 있으며 이 부분을 rule에 추가하면 서버가 재기동돼도 해당 disk에 자동적으로 ownership이 부여된다.
[root@test ~]# vi /etc/udev/rules.d/98-disk_permmit.rules
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c29540048b9248c80212f2dd44d9",OWNER="grid",GROUP="asmadmin",MODE="0660"
KERNEL=="dm-*",ENV{DM_UUID}=="mpath-36000c2979ec78550dd86289304fc7642",OWNER="grid",GROUP="asmadmin",MODE="0660"
- 위에 설명한 것과 같이 rule을 만든다.
[root@test ~]# vi /etc/multipath/bindings
# Multipath bindings, Version : 1.0
# NOTE: this file is automatically maintained by the multipath program.
# You should not need to edit this file in normal circumstances.
#
# Format:
# alias wwid
#
DATA01 36000c29540048b9248c80212f2dd44d9
DATA02 36000c2979ec78550dd86289304fc7642
- multipath의 식별을 위하여 alias를 지정해준다.
[root@test ~]# init 6
- 재기동
[root@test ~]# multipath -l
DATA01 (36000c29540048b9248c80212f2dd44d9) dm-2 VMware ,Virtual disk
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
`- 3:0:0:0 sdb 8:16 active undef unknown
DATA02 (36000c2979ec78550dd86289304fc7642) dm-3 VMware ,Virtual disk
size=20G features='0' hwhandler='0' wp=rw
`-+- policy='service-time 0' prio=0 status=active
`- 3:0:1:0 sdc 8:32 active undef unknown
- multipath가 정상적으로 적용된 것을 볼 수 있다.
[root@test ~]# ls -lrt /dev/dm*
brw-rw----. 1 root disk 253, 0 Jul 4 03:59 /dev/dm-0
brw-rw----. 1 root disk 253, 1 Jul 4 03:59 /dev/dm-1
brw-rw----. 1 grid asmadmin 253, 2 Jul 4 03:59 /dev/dm-2
brw-rw----. 1 grid asmadmin 253, 3 Jul 4 03:59 /dev/dm-3
brw-rw----. 1 root disk 253, 5 Jul 4 03:59 /dev/dm-5
brw-rw----. 1 root disk 253, 4 Jul 4 03:59 /dev/dm-4
- disk ownership 역시 자동적으로 부여된 것을 확인할 수 있다.
제 블로그의 내용이 도움이 되셨나요?
▼▼▼▼▼▼▼▼▼▼▼
여러분의 공감과 댓글이 아잇티에게 큰 힘이됩니다 :)
반응형
'과거자료 > OS - Linux' 카테고리의 다른 글
Linux] LVM(PV, VG, LV) 관리 방법 생성, 삭제, 조회, 추가 (1) | 2017.12.14 |
---|---|
EXSI] Shared Disk Volume 구성 (0) | 2017.12.11 |
Linux]Mount된 CD의 rpm을 yum으로 설치하는 방법 (0) | 2017.12.11 |
NT Windows 사용포트 확인하는 방법 (0) | 2017.11.03 |
Linux CPU 확인 명령 (0) | 2017.10.13 |