하나의 디스크를 두대의 서버에서 공유하며 사용할 경우 두대의 서버에서 동시에 읽기 쓰기가 불가능하다.
그 이유는 A 서버의 OS가 디스크에 접근하여 데이터를 관리하며 읽기/쓰기를 하고 있는데 이때 B서버의 OS가 디스크에 접근하여 데이터를 생성하거나 수정했을 경우 A서버의 OS가 관리하는 데이터 정보와 달라지게 되면서 정합성이 맞지 않아 데이터를 쓸수 없게 되어 버린다. 그래서 OS에서는 디스크에 접근했을 경우 디스크의 소유권을 가져가면서 데이터 보호를 위해 다른 OS의 접근을 차단해 버린다.
결국 두대의 서버에서 하나의 디스크를 사용하려고 하면 소유권을 넘겨 가며 번갈아 가며 사용해야 한다는 뜻이다. 이렇다 보니 서버 이중화를 할 때 Active-Active가 아닌 Active-Standby로 구성을 한다.
하지만 모든 이중화 구성이 Active-Standby은 아니고 Active-Active도 가능한데 다만 Active-Active 구성을 하기 위해선 별도의 이중화 솔루션을 사용해야 한다.
아무튼 두대의 서버에 공유된 디스크에 LVM을 구성하고 VG넘겨가며 두대의 서버에서 같은 VG를 사용하기 위해 사용되는 명령어가 vgexport와 vgimport 이다.
vg를 공유하기 위해선 먼저 디스크를 공유해야 하는데 VMware 환경에서의 디스크 공유하는 방법을 아래 링크를 참고 하면 된다.
vSphere에서 공유볼륨 설정하는 방법
레거시 환경에서 서버를 Active/Active나 Active/Standby 방식으로 이중화 구성을 하려면 두대의 서버가하나의 스토리지의 볼륨을 바라보는 구성을 많이 하게 된다.이러한 스토리지 볼륨 공유 구성을
blog.innern.net
■ 테스트 환경
• VMware 8.0.3
• 게스트 VM : node1, node2
• VM OS : Rocky 10.2
• 공유 디스크 : sdb - 20GB
1. 공유 볼륨 디스크 확인
해당 다스크가 동일한 디스크 볼륨인지 UUID를 통해 확인한다.
# lsblk -o NAME,SIZE,MODEL,SERIAL,WWN
![]() |
![]() |
또는
# /usr/lib/udev/scsi_id -g -u -d /dev/sdb
![]() |
![]() |
2. sdb를 LVM 구성 및 파일시스템 생성하기
1) LVM 생성하기
먼저 node1에서만 sdb디스크로 LVM구성을 한다.
VG이름 : shareVG
LV이름 : sharelv
마운트포인트 : /share_disk
| [root@node1 ~]# pvcreate /dev/sdb Physical volume "/dev/sdb" successfully created. [root@node1 ~]# vgcreate sharevg /dev/sdb Volume group "sharevg" successfully created [root@node1 ~]# lvcreate -l +100%FREE --name sharelv /dev/sharevg Logical volume "sharelv" created. [root@node1 ~]# mkfs.xfs /dev/mapper/sharevg-sharelv meta-data=/dev/mapper/sharevg-sharelv isize=512 agcount=4, agsize=1310464 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=1 = reflink=1 bigtime=1 inobtcount=1 nrext64=1 = exchange=0 metadir=0 data = bsize=4096 blocks=5241856, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1, parent=0 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 = rgcount=0 rgsize=0 extents = zoned=0 start=0 reserved=0 [root@node1 ~]# |
2) 파일시스템을 생성
lvm 구성한 볼륨을 xfs로 포맷하고 /share_disk 디렉토리에 마운트한다.
| [root@node1 ~]# mkfs.xfs /dev/mapper/sharevg-sharelv meta-data=/dev/mapper/sharevg-sharelv isize=512 agcount=4, agsize=1310464 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=1, sparse=1, rmapbt=1 = reflink=1 bigtime=1 inobtcount=1 nrext64=1 = exchange=0 metadir=0 data = bsize=4096 blocks=5241856, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0, ftype=1, parent=0 log =internal log bsize=4096 blocks=16384, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 = rgcount=0 rgsize=0 extents = zoned=0 start=0 reserved=0 [root@node1 ~]# mkdir /share_disk [root@node1 ~]# [root@node1 ~]# mount /dev/mapper/sharevg-sharelv /share_disk [root@node1 ~]# [root@node1 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/rl-root xfs 30G 6.3G 24G 21% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.8G 84K 3.8G 1% /dev/shm efivarfs efivarfs 256K 58K 194K 23% /sys/firmware/efi/efivars tmpfs tmpfs 1.5G 9.3M 1.5G 1% /run tmpfs tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service /dev/sda2 xfs 960M 412M 549M 43% /boot /dev/sda1 vfat 1022M 9.0M 1014M 1% /boot/efi tmpfs tmpfs 768M 120K 768M 1% /run/user/0 /dev/mapper/sharevg-sharelv xfs 20G 424M 20G 3% /share_disk [root@node1 ~]# |
3. vgexport 하기
node1에서 sharevg를 export한다.
1) 파일시스템 umount
| [root@node1 ~]# umount /share_disk [root@node1 ~]# |
2) vg 비활성화 하기
| [root@node1 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rl -wi-ao---- <30.00g swap rl -wi-ao---- 8.00g sharelv sharevg -wi-ao---- <20.00g ││ │└─── Active - LV 활성화 상태 └──── Open - 현재 장치가 열려 있음 [root@node1 ~]# vgchange -an sharevg 0 logical volume(s) in volume group "sharevg" now active * vgchange 옵션 -a = activation -y = yes -n = no [root@node1 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rl -wi-ao---- <30.00g swap rl -wi-ao---- 8.00g sharelv sharevg -wi------- <20.00g |
3) vgexport 하기
| [root@node1 ~]# vgs VG #PV #LV #SN Attr VSize VFree rl 1 2 0 wz--n- <38.00g 0 sharevg 1 1 0 wz--n- <20.00g 0 [root@node1 ~]# [root@node1 ~]# vgexport sharevg Volume group "sharevg" successfully exported [root@node1 ~]# [root@node1 ~]# vgs VG #PV #LV #SN Attr VSize VFree rl 1 2 0 wz--n- <38.00g 0 sharevg 1 1 0 wzx-n- <20.00g 0 │││ ││└─── Exported - export 상태 │└───── Resizable - VG 크기 변경 가능 └─────── Writable - VG 쓰기 가능 |
4. vgimport 하기
공유 디스크를 맨 처음 구성을 하고 node1에서 lvm 구성을 했다고 하더라고 node2에선 그 어떤 lvm의 정보를 가지고 있지 않는 상태이다. 그래서 lvm 정보를 조회 해도 node1에서 생성한 lvm 정보를 볼수 없다.
| [root@node2 ~]# pvs PV VG Fmt Attr PSize PFree /dev/sda3 rl lvm2 a-- <38.00g 0 [root@node2 ~]# vgs VG #PV #LV #SN Attr VSize VFree rl 1 2 0 wz--n- <38.00g 0 [root@node2 ~]# wipefs /dev/sdb DEVICE OFFSET TYPE UUID LABEL sdb 0x218 LVM2_member Mfs0f2-RO4b-6Kdz-ia82-gSBb-Byd8-7VFzQs /dev/sdb가 LVM 디스크임은 확인 되었으나 lvm 정보가 없음 |
LVM이 검색하고 사용할 수 있는 장치 목록에 디스크를 등록한다.
1) node2의 lvm 목록에 공유 볼륨 sdb 추가하기
* 기존에 vgimport를 했던 이력이 있을 경우 건너띄어도 된다.
| [root@node2 ~]# lvmdevices --adddev /dev/sdb [root@node2 ~]# [root@node2 ~]# vgs VG #PV #LV #SN Attr VSize VFree rl 1 2 0 wz--n- <38.00g 0 sharevg 1 1 0 wzx-n- <20.00g 0 node1에서 생성한 sharevg 정보가 보임 |
2) vgimport 하기
| [root@node2 ~]# vgimport sharevg Volume group "sharevg" successfully imported [root@node2 ~]# [root@node2 ~]# vgs VG #PV #LV #SN Attr VSize VFree rl 1 2 0 wz--n- <38.00g 0 sharevg 1 1 0 wz--n- <20.00g 0 Attr의 세번째 값이 - 로 export 되지 않았음을 확인 |
3) vg 활성화 하기
| [root@node2 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rl -wi-ao---- <30.00g swap rl -wi-ao---- 8.00g sharelv sharevg -wi------- <20.00g [root@node1 ~]# vgchange -ay sharevg 1 logical volume(s) in volume group "sharevg" now active [root@node1 ~]# [[root@node1 ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root rl -wi-ao---- <30.00g swap rl -wi-ao---- 8.00g sharelv sharevg -wi-a----- <20.00g sharelv가 active 상태임을 확인 |
4) 파일시스템 마운트 하기
마운트할 디렉토리를 생성하고 마운트를 해준다.
| [root@node2 ~]# mkdir /share_disk [root@node2 ~]# [root@node2 ~]# mount /dev/mapper/sharevg-sharelv /share_disk/ [root@node2 ~]# [root@node2 ~]# df -Th Filesystem Type Size Used Avail Use% Mounted on /dev/mapper/rl-root xfs 30G 6.2G 24G 21% / devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev tmpfs tmpfs 3.8G 84K 3.8G 1% /dev/shm efivarfs efivarfs 256K 58K 194K 23% /sys/firmware/efi/efivars tmpfs tmpfs 1.5G 9.3M 1.5G 1% /run tmpfs tmpfs 1.0M 0 1.0M 0% /run/credentials/systemd-journald.service /dev/sda2 xfs 960M 412M 549M 43% /boot /dev/sda1 vfat 1022M 9.0M 1014M 1% /boot/efi tmpfs tmpfs 768M 120K 768M 1% /run/user/0 /dev/mapper/sharevg-sharelv xfs 20G 424M 20G 3% /share_disk |
'Technical > System' 카테고리의 다른 글
| vSphere에서 디스크 공유 설정하는 방법 (0) | 2026.10.19 |
|---|---|
| 리눅스에서 신규 디스크 인식하는 방법 (0) | 2026.06.11 |
| 2. 리눅스에서 LVM 설정 하기 (LVM 확장(증설) 및 파일시스템 확장) (0) | 2026.06.11 |
| 1. 리눅스에서 LVM 설정 하기 (LVM 구성 및 파일시스템 생성) (0) | 2026.06.09 |
| [Windows] forfiles.exe를 이용하여 오래된 로그 삭제 (0) | 2025.11.27 |




댓글