티스토리 뷰
Update : 2019-03-15
CentOS 강좌 PART 1. 7 스토리지 관리와 LVM
[LVM 의 개요 ]
LVM은 Logical Volume Manager 의 약어로, CentOS에서 기본으로 제공되는 강력한 볼륨 매니져 이다.
LVM에서는 볼륨을 유연하게 구성할 수 있도록 물리적으로 제공되는 디스크들을 논리적으로 구성하여 , 논리적인 그룹들을 묶거나 유연하게 확장 또는 제거 할 수 있도록 도와 준다.
다소 복잡하게 느껴질 수도 있기 때문에 아래와 같이 논리적인 도식도를 만들어 보았고, 이 구성 예제에 맞추어서 랩을 구성했다.
실제 LVM으로 구성되는 것은 3번 단계 부터 이며, 1번 단계는 물리적 또는 가상화 기반의 디스크 추가, 2번 단계는 운영체제 레벨의 파티셔닝이다.
위의 구성을 따라서 아래 6단계를 구성해서 파티션 구성과 PV, VG, LV, 파일시스템의 구성과 마운트까지 진행하는 예제이다.
[1. 디스크 추가 및 LVM 구성을 위한 사전 점검]
[whchoi@centos151 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk sda1 8:1 0 1G 0 part /boot sda2 8:2 0 99G 0 part centos-root 253:0 0 50G 0 lvm / centos-swap 253:1 0 7.9G 0 lvm [SWAP] centos-home 253:2 0 41.1G 0 lvm /home # lsblk 를 통해 현재 블록디스크 구성 현황을 살펴 볼수 있다. # 100G의 물리적인 디스크는 2개의 디스크로 파티셔닝이 자동으로 된다. # boot 섹터의 sda1과 구동이후 사용하게 될 공간 sda2 이다. # sda2는 다시 LVM으로 SWAP용도로 메모리 공간 만큼 자동 할당되고, 나머지 공간은 /root와 /home에 절반 정도씩 할당된다. |
CentOS 최초 설치시에 자동 파티셔닝을 설정하게 되면 ,아래와 같이 자동으로 LVM이 설정된다.
이후 사용자가 디스크 공간을 추가로 할당하기 위해 물리적 디스크를 추가하게 되면 아래와 같이 변경된다.
아래 예제는 vCenter에서 3개의 디스크를 추가로 할당한 것이다.
50GB 디스크 3개를 Thin Provisioning으로 할당하였다.
[whchoi@centos151 ~]$ lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk sda1 8:1 0 1G 0 part /boot sda2 8:2 0 99G 0 part centos-root 253:0 0 50G 0 lvm / centos-swap 253:1 0 7.9G 0 lvm [SWAP] centos-home 253:2 0 41.1G 0 lvm /home sdb 8:16 0 50G 0 disk sdc 8:32 0 50G 0 disk sdd 8:48 0 50G 0 disk sr0 11:0 1 1024M 0 rom # 50GB 디스크 3개가 차례대로 /dev/sdb, /dev/sdc, /dev/sdd 에 할당된 것을 확인 할 수 있다. # 파티셔닝을 하지 않았기 때문에, 물리적인 디스크로만 확인된다. |
[root@centos151 whchoi]# fdisk -l /dev/sda Disk /dev/sda: 107.4 GB, 107374182400 bytes, 209715200 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 label type: dos Disk identifier: 0x000bbf58 Device Boot Start End Blocks Id System /dev/sda1 * 2048 2099199 1048576 83 Linux /dev/sda2 2099200 209715199 103808000 8e Linux LVM # 현재 /dev/sda 의 파티셔닝 현황을 “ fdisk -l “ 명령을 통해 확인한다. [[whchoi@centos151 ~]$ df -k Filesystem 1K-blocks Used Available Use% Mounted on /dev/mapper/centos-root 52403200 1596640 50806560 4% / devtmpfs 3992856 0 3992856 0% /dev tmpfs 4004752 0 4004752 0% /dev/shm tmpfs 4004752 8992 3995760 1% /run tmpfs 4004752 0 4004752 0% /sys/fs/cgroup /dev/sda1 1038336 148108 890228 15% /boot /dev/mapper/centos-home 43093444 33008 43060436 1% /home tmpfs 800952 0 800952 0% /run/user/1000 [root@centos151 whchoi]# lvmdiskscan /dev/centos/root [ 50.00 GiB] /dev/sda1 [ 1.00 GiB] /dev/centos/swap [ <7.88 GiB] /dev/sda2 [ <99.00 GiB] LVM physical volume /dev/centos/home [ <41.12 GiB] /dev/sdb [ 50.00 GiB] /dev/sdc [ 50.00 GiB] /dev/sdd [ 50.00 GiB] 6 disks 1 partition 0 LVM physical volume whole disks 1 LVM physical volume |
[ 1.Patitioning - 디스크 파티셔닝]
현재 블록디스크의 Type에 대해 “lsblk” 먼저 살펴본다.
[root@centos151 whchoi]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs d935273d-4df1-42b6-a9df-2f30f35f1440 /boot └─sda2 LVM2_member k7ygFn-VQEz-WoX7-JLO7-w8il-1493-lnZCPU ├─centos-root xfs f3e5fdfc-2a97-4256-a235-c2fd4ce35e6b / ├─centos-swap swap fb9b757a-e3a5-41ab-a3d8-b836772bc49e [SWAP] └─centos-home xfs 99e15ffd-522b-4b9b-a832-6ba4583d888e /home sdb sdc sdd sr0 # lsblk를 통해 조회를 해 보면, 현재 type은 sda 는 2개의 파티셔닝으로 나누어져 있다. # sda1은 기본 리눅스 파일시스템으로, sda2는 lvm 으로 구성되어 있다. # 새롭게 추가된 /dev/sdb, /dev/sdc, /dev/sdd 3개의 디스크는 파디셔닝 되어 있지 않았다. |
fdisk 명령어를 통해 Partition을 수행한다.
[root@centos151 whchoi]# fdisk /dev/sdb Welcome to fdisk (util-linux 2.23.2). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table Building a new DOS disklabel with disk identifier 0xbba9c6be. Command (m for help): m Command action a toggle a bootable flag b edit bsd disklabel c toggle the dos compatibility flag d delete a partition g create a new empty GPT partition table G create an IRIX (SGI) partition table l list known partition types m print this menu n add a new partition o create a new empty DOS partition table p print the partition table q quit without saving changes s create a new empty Sun disklabel t change a partition's system id u change display/entry units v verify the partition table w write table to disk and exit x extra functionality (experts only) Command (m for help): p Disk /dev/sdb: 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 label type: dos Disk identifier: 0xbba9c6be Device Boot Start End Blocks Id System Command (m for help): n # 새로운 파티션을 추가한다. Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): p Partition number (1-4, default 1): First sector (2048-104857599, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): Using default value 104857599 # 물리적인 디스크를 원하는 용량만큼 파티셔닝 할 수 있다. Partition 1 of type Linux and of size 50 GiB is set Command (m for help): t Selected partition 1 Hex code (type L to list all codes): 8e # 파티션 타입을 LVM으로 구성 # Hex code “8e”가 LVM 파티션이며, “83”은 리눅스 파티션이다. 이것은 모두 구성한 이후에도 변경이 가능하다. Command (m for help): w # 파티셔닝을 수행한다. The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. # fdisk 명령을 통해 Partition을 수행할 수 있다. # fdisk 유용한 옵션 # m : 메뉴들에 대한 설명 # n : 새로운 파티션 추가 # w : 디스크에 파티셔닝 수행 [root@centos151 whchoi]# lsblk -p NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 8:0 0 100G 0 disk ├─/dev/sda1 8:1 0 1G 0 part /boot └─/dev/sda2 8:2 0 99G 0 part ├─/dev/mapper/centos-root 253:0 0 50G 0 lvm / ├─/dev/mapper/centos-swap 253:1 0 7.9G 0 lvm [SWAP] └─/dev/mapper/centos-home 253:2 0 41.1G 0 lvm /home /dev/sdb 8:16 0 50G 0 disk └─/dev/sdb1 8:17 0 50G 0 part # 추가된 /dev/sdb 전체 디스크를 파티셔닝을 수행하고 lsblk로 확인해 보면 파티셔닝이 추가된 것을 확인 할수 있다. |
[root@centos151 whchoi]# fdisk /dev/sdd Welcome to fdisk (util-linux 2.23.2). # 중략... Command (m for help): n Partition type: p primary (0 primary, 0 extended, 4 free) e extended Select (default p): Using default response p Partition number (1-4, default 1): First sector (2048-104857599, default 2048): Using default value 2048 Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): +25G Partition 1 of type Linux and of size 25 GiB is set # +25G 로 사이즈를 할당하여, /dev/sdd1에는 25GB를 설정한다. [root@centos151 whchoi]# fdisk /dev/sdd Command (m for help): n Partition type: p primary (1 primary, 0 extended, 3 free) e extended Select (default p): p Partition number (2-4, default 2): # 이미 1번을 /dev/sdd1이 소유했으므로, 2번 부터 시작한다. First sector (52430848-104857599, default 52430848): Using default value 52430848 Last sector, +sectors or +size{K,M,G} (52430848-104857599, default 104857599): Using default value 104857599 Partition 2 of type Linux and of size 25 GiB is set # 나머지 25GB를 할당한다. Command (m for help): t Selected partition 1 Hex code (type L to list all codes): 8e # 파티션 타입을 LVM으로 구성 # Hex code “8e”가 LVM 파티션이며, “83”은 리눅스 파티션이다. 이것은 모두 구성한 이후에도 변경이 가능하다. Command (m for help): w The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. [root@centos151 whchoi]# lsblk -p NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT /dev/sda 8:0 0 100G 0 disk ├─/dev/sda1 8:1 0 1G 0 part /boot └─/dev/sda2 8:2 0 99G 0 part ├─/dev/mapper/centos-root 253:0 0 50G 0 lvm / ├─/dev/mapper/centos-swap 253:1 0 7.9G 0 lvm [SWAP] └─/dev/mapper/centos-home 253:2 0 41.1G 0 lvm /home /dev/sdb 8:16 0 50G 0 disk └─/dev/sdb1 8:17 0 50G 0 part /dev/sdc 8:32 0 50G 0 disk └─/dev/sdc1 8:33 0 50G 0 part /dev/sdd 8:48 0 50G 0 disk ├─/dev/sdd1 8:49 0 25G 0 part └─/dev/sdd2 8:50 0 25G 0 part /dev/sr0 11:0 1 1024M 0 rom # 파티셔닝이 완료된 후의 모습을 볼 수 있다. 디스크는 전체 4개이지만, /dev/sda 와 /dev/sdd에는 2개의 파티셔닝으로 분할하였다. |
[ PV (Physical Volumes) 구성]
사용되는 명령어 pvscan, pvs, pvdisplay : 현재 PV에 대한 현황을 조회한다. pvcreat “파티션 디바이스” : 파티셔닝된 디스크에 PV를 생성한다. |
먼저 pvscan 명령을 통해 현재 PV에 대한 현황을 조회한다.
[root@centos151 whchoi]# pvscan PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free] Total: 1 [<99.00 GiB] / in use: 1 [<99.00 GiB] / in no VG: 0 [0 ] # 최초 설치시 자동파티셔닝 한 이외에 PV(Physical Volume)을 생성하지 않았기 때문에, 당연히 보이지 않는다. # 또한 sda는 LVM이 아닌 xfs로 파티셔닝을 구현했다. |
생성한 파티셔닝에 따라 PV를 생성한다.
[root@centos151 whchoi]# pvcreate /dev/sdb1 Physical volume "/dev/sdb1" successfully created. [root@centos151 whchoi]# pvcreate /dev/sdc1 Physical volume "/dev/sdc1" successfully created. [root@centos151 whchoi]# pvcreate /dev/sdd1 Physical volume "/dev/sdd1" successfully created. [root@centos151 whchoi]# pvcreate /dev/sdd2 Physical volume "/dev/sdd2" successfully created. # 새로 생성된 4개의 파티셔닝에 PV를 생성한다. [root@centos151 whchoi]# pvscan PV /dev/sda2 VG centos lvm2 [<99.00 GiB / 4.00 MiB free] PV /dev/sdd1 lvm2 [25.00 GiB] PV /dev/sdb1 lvm2 [<50.00 GiB] PV /dev/sdc1 lvm2 [<50.00 GiB] PV /dev/sdd2 lvm2 [<25.00 GiB] Total: 5 [248.99 GiB] / in use: 1 [<99.00 GiB] / in no VG: 4 [<150.00 GiB] [root@centos151 whchoi]# pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <99.00g 4.00m /dev/sdb1 lvm2 --- <50.00g <50.00g /dev/sdc1 lvm2 --- <50.00g <50.00g /dev/sdd1 lvm2 --- 25.00g 25.00g /dev/sdd2 lvm2 --- <25.00g <25.00g # 다시 pvscan, pvdisplay 명령을 통해 PV가 정상적으로 수행되었는지 확인한다. |
[ VG (Volume Group) 구성]
LVM에서 구성이 가능하도록 PV에서 생성된 볼륨을 그룹화 하는 단계이다.
VG 그룹은 PV 그룹들을 용도에 적합하도록 생성하여 할당 할 수 있다.
먼저 기존의 VG에 새로 생성된 PV를 확장하는 예제를 보도록 하자.
사용되는 명령어 vgdisplay, vgs , vgscan : 현재 VG 에 대한 정보를 출력한다. pvdisplay : 현재 VG/PV에 할당된 정보를 출력한다. vgextended “vggroup” “pv name” : 기존 생성된 VG에 신규 PV를 추가한다. vgcreate addvg /dev/sdd1 /dev/sdd2 : 새롭게 VG를 생성한다. (e.g addvg : vg 이름, /dev/sdd1, /dev/sdd2 : PG 이름) vgchange -a y addvg : 생성된 VG를 적용하여 활성화 한다. (e.g addvg : vg 이름) |
[root@centos151 whchoi]# vgdisplay -C VG #PV #LV #SN Attr VSize VFree centos 1 3 0 wz--n- <99.00g 4.00m # vgdisplay 명령을 통해 현재 구성된 볼륨 그룹을 확인한다. # centos VG에는 1개의 PV가 할당되어 있다. [root@centos151 whchoi]# pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <99.00g 4.00m /dev/sdb1 lvm2 --- <50.00g <50.00g /dev/sdc1 lvm2 --- <50.00g <50.00g /dev/sdd1 lvm2 --- 25.00g 25.00g /dev/sdd2 lvm2 --- <25.00g <25.00g # centos VG에는 1개의 PV만 할당되어 있다. [root@centos151 whchoi]# vgextend centos /dev/sdb1 Volume group "centos" successfully extended [root@centos151 whchoi]# vgextend centos /dev/sdc1 Volume group "centos" successfully extended # 2개의 PV를 “vgextend” 명령을 통해 추가한다. [root@centos151 whchoi]# vgdisplay -C VG #PV #LV #SN Attr VSize VFree centos 3 3 0 wz--n- <198.99g <100.00g # VG centos에 정상적으로 2개의 PV가 추가되어 3개로 되고, 용량도 99G에서 2개의 50G PV가 추가되어 199G가 되었다. [root@centos151 whchoi]# pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <99.00g 4.00m /dev/sdb1 centos lvm2 a-- <50.00g <50.00g /dev/sdc1 centos lvm2 a-- <50.00g <50.00g /dev/sdd1 lvm2 --- 25.00g 25.00g /dev/sdd2 lvm2 --- <25.00g <25.00g # 2개의 PV /dev/sdb1, /dev/sdc1 모두 정상적으로 centos 볼륨에 추가되었다. |
이제 새로운 VG를 만들고 남은 2개의 PV를 추가해 보겠다.
[root@centos151 whchoi]# vgcreate addvg /dev/sdd1 /dev/sdd2 [root@centos151 whchoi]# vgchange -a y addvg 0 logical volume(s) in volume group "addvg" now active # vgcreate 명령을 통해서 2개의 PV를 추가한다. # vgchange -a y 명령을 통해서 새롭게 추가한 VG를 활성화한다. [[root@centos151 whchoi]# vgdisplay -C VG #PV #LV #SN Attr VSize VFree addvg 2 0 0 wz--n- 49.99g 49.99g centos 3 3 0 wz--n- <198.99g <100.00g [root@centos151 whchoi]# pvdisplay -C PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <99.00g 4.00m /dev/sdb1 centos lvm2 a-- <50.00g <50.00g /dev/sdc1 centos lvm2 a-- <50.00g <50.00g /dev/sdd1 addvg lvm2 a-- <25.00g <25.00g /dev/sdd2 addvg lvm2 a-- <25.00g <25.00g # VG 2개에 모두 정상적으로 할당된 것을 확인 할 수 있다. [root@centos151 whchoi]# vgdisplay -C VG #PV #LV #SN Attr VSize VFree addvg 2 0 0 wz--n- 49.99g 49.99g centos 3 3 0 wz--n- <198.99g <100.00g |
[LV (Logical Volume ) 구성 ]
생성된 VG 그룹에 Logical Volume을 할당하거나 이미 할당된 LV의 크기를 조절한다.
먼저 설치때 자동으로 구성된 centos VG에 할당이 된 LV 가운데 /home 을 40G에서 90G로 확장한다.
사용되는 명령어 lvdisplay , lvscan, las : 현재 VG 에 대한 정보를 출력한다. pvdisplay : 현재 VG/PV에 할당된 정보를 출력한다. lvextend -L+48.99G /dev/centos/home: 기존 생성된 lv에 디스크 용량을 확장한다. (e.g 48.99 용량 확장 크기, /dve/centos/home : LV path) lvcreate centos -L 50G -n home2 : 새롭게 lv를 생성하고 용량을 구성한다. (e.g centos -VG이름, home2 - LV 이름) |
[root@centos151 whchoi]# lvscan ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit ACTIVE '/dev/centos/home' [<41.12 GiB] inherit ACTIVE '/dev/centos/root' [50.00 GiB] inherit # 현재 구성되어 있는 lv를 lvscan 명령을 통해 확인한다. [root@centos151 whchoi]# lvdisplay -a … --- Logical volume --- LV Path /dev/centos/home LV Name home VG Name centos LV UUID e18x0O-tQMq-cQwr-MRaH-2MCB-goO9-h7IDCu LV Write Access read/write LV Creation host, time localhost.localdomain, 2019-03-12 01:10:25 +0900 LV Status available # open 1 LV Size <41.12 GiB Current LE 10526 Segments 1 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 .. 생략 # 현재 구성되어 있는 lv를 lvdisplay 명령을 통해 상세하게 조회할 수 있다. # /dev/centos/home 의 현재 디스크 사이즈와 구성을 확인 할 수 있다. [root@centos151 /]# lvextend -L+48.99G /dev/centos/home Rounding size to boundary between physical extents: 48.99 GiB. Size of logical volume centos/home changed from <41.12 GiB (10526 extents) to <90.11 GiB (23068 extents). Logical volume centos/home successfully resized. # 90GB로 확장하기 때문에 lvextend 명령을 통해 디스크 용량을 확장해 준다. [root@centos151 /]# lvscan ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit ACTIVE '/dev/centos/home' [<90.11 GiB] inherit ACTIVE '/dev/centos/root' [50.00 GiB] inherit [root@centos151 whchoi]# lvdisplay -a … 생략 --- Logical volume --- LV Path /dev/centos/home LV Name home VG Name centos LV UUID e18x0O-tQMq-cQwr-MRaH-2MCB-goO9-h7IDCu LV Write Access read/write LV Creation host, time localhost.localdomain, 2019-03-12 01:10:25 +0900 LV Status available # open 1 LV Size <90.11 GiB Current LE 23068 Segments 3 Allocation inherit Read ahead sectors auto - currently set to 8192 Block device 253:2 … 이하 생략 # 정상적으로 디스크 용량이 확장되었는지 lvscan , lvdisplay 명령을 통해 LV를 확인한다. [root@centos151 whchoi]# xfs_growfs /dev/centos/home # 파일시스템에서 실제 볼륨을 확장하기 위해서는 기존 볼륨의 파일시스템 사이즈 확장 명령을 통해 볼륨 실제 크기를 확장한다. |
신규 LV를 추가하고 사이즈를 할당 할 수 있다.
[root@centos151 /]# lvscan ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit ACTIVE '/dev/centos/home' [<90.11 GiB] inherit ACTIVE '/dev/centos/root' [50.00 GiB] inherit # 현재 LV 구성 정보를 lvs, lvdisplay, lvscan 명령을 통해 확인한다. [root@centos151 /]# lvcreate centos -L 50G -n home2 Logical volume "home2" created. # lvcreate 명령을 통해 새롭게 centos VG에 home2라는 LV를 생성한다. # -L 옵션을 통해서 특정 VG에 필요한 디스크 사이즈를 할당한다. [root@centos151 /]# lvscan ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit ACTIVE '/dev/centos/home' [<90.11 GiB] inherit ACTIVE '/dev/centos/root' [50.00 GiB] inherit ACTIVE '/dev/centos/home2' [50.00 GiB] inherit [root@centos151 /]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert home centos -wi-ao---- <90.11g home2 centos -wi-a----- 50.00g root centos -wi-ao---- 50.00g swap centos -wi-ao---- <7.88g # 정상적으로 LV가 생성된 것을 확인한다. [root@centos151 /]# lvcreate addvg -l 100%FREE -n userdata Logical volume "userdata" created. # lvcreate 명령을 통해 새롭게 addvg VG에 userdata라는 LV를 생성한다. # -l 옵션을 통해서 현재 vg 여유공간의 %로 디스크 사이즈를 할당한다. [root@centos151 /]# lvscan ACTIVE '/dev/addvg/userdata' [49.99 GiB] inherit ACTIVE '/dev/centos/swap' [<7.88 GiB] inherit ACTIVE '/dev/centos/home' [<90.11 GiB] inherit ACTIVE '/dev/centos/root' [50.00 GiB] inherit ACTIVE '/dev/centos/home2' [50.00 GiB] inherit [root@centos151 /]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert userdata addvg -wi-a----- 49.99g home centos -wi-ao---- <90.11g home2 centos -wi-a----- 50.00g root centos -wi-ao---- 50.00g swap centos -wi-ao---- <7.88g # 정상적으로 LV가 생성된 것을 확인한다. |
[ File System 구성 ]
파티셔닝과 LVM에서 물리적 볼륨으로 인식하는 PV, PV를 그룹핑하는 VG, 그리고 VG를 논리적으로 할당하는 LV가 구성이 완료되었으면 디스크 구성은 모두 완료되었다.
이제 해당 논리적 디스크에 파일시스템을 적용하고, 마운트를 하면 사용할 수 있다.
파일시스템은 CentOS 7 부터는 ext4 기본에서 많은 장점을 가지고 있는 xfs 으로 변경이 되었다.
본 예제에서는 새롭게 추가된 LV에 모두 xfs로 구성을 한다.
사용되는 명령어 mkfs -f “filesystem type” : ext4 또는 xfs 파일시스템으로 LV를 구성한다. lsblk -f : 파일시스템 구성 현황 mount : LV를 시스템에 마운트 df -h : : 마운트 구성현황 |
[root@centos151 /]# mkfs -t xfs /dev/centos/home2 meta-data=/dev/centos/home2 isize=512 agcount=4, agsize=3276800 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=13107200, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=6400, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # mkfs -t 명령을 통해 CentOS7에서 기본 사용되는 xfs 파일시스템으로 구성한다. [root@centos151 /]# mkfs -t xfs /dev/addvg/userdata meta-data=/dev/addvg/userdata isize=512 agcount=4, agsize=3276288 blks = sectsz=512 attr=2, projid32bit=1 = crc=1 finobt=0, sparse=0 data = bsize=4096 blocks=13105152, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 ftype=1 log =internal log bsize=4096 blocks=6399, version=2 = sectsz=512 sunit=0 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 # mkfs -t 명령을 통해 CentOS7에서 기본 사용되는 xfs 파일시스템으로 구성한다. [root@centos151 /]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs d935273d-4df1-42b6-a9df-2f30f35f1440 /boot └─sda2 LVM2_member k7ygFn-VQEz-WoX7-JLO7-w8il-1493-lnZCPU ├─centos-root xfs f3e5fdfc-2a97-4256-a235-c2fd4ce35e6b / ├─centos-swap swap fb9b757a-e3a5-41ab-a3d8-b836772bc49e [SWAP] └─centos-home xfs 99e15ffd-522b-4b9b-a832-6ba4583d888e /home sdb └─sdb1 LVM2_member xV0oOk-33aw-VgxC-GC23-ACGS-DcKf-cQqOF7 ├─centos-home xfs 99e15ffd-522b-4b9b-a832-6ba4583d888e /home └─centos-home2 xfs 4f48004f-27b8-4bd9-bce5-6b69d4d2b8dc /home2 sdc └─sdc1 LVM2_member dOalQg-A08b-TN3Q-Mal2-cs1a-4dn7-YWducr └─centos-home2 xfs 4f48004f-27b8-4bd9-bce5-6b69d4d2b8dc /home2 sdd ├─sdd1 LVM2_member xNliHe-zUP0-TsaA-qcdN-dIGc-iX19-B1wiKE │ └─addvg-userdata xfs c97b40a3-28f3-4087-a829-681dd4b37a5e └─sdd2 LVM2_member 0I73zn-deni-nfq8-MROS-pD2a-1Ysm-eYCdxn └─addvg-userdata xfs c97b40a3-28f3-4087-a829-681dd4b37a5e # xfs 파일시스템 구성 후에 정상적으로 LV이 파일시스템 구성이 완료되었는지 확인한다. |
[root@centos151 /]# mkdir /home2 [root@centos151 /]# mount /dev/centos/home2 /home2 # /dev/centos/home2 LV를 마운트 시킬 디렉토리를 만들고 마운트 시킨다. [root@centos151 /]# vi /home/whchoi/lvm_test.txt [root@centos151 /]# cp /home/whchoi/lvm_test.txt /home2 [root@centos151 /]# cat /home2/lvm_test.txt lvmtest # test 파일을 만들어서, 정상적으로 Read/Write가 되는지 확인한다. [root@centos151 /]# mkdir /userdata [root@centos151 /]# mount /dev/addvg/userdata /userdata/ # /dev/addvg/userdat LV를 마운트 시킬 디렉토리를 만들고 마운트 시킨다. [root@centos151 /]# cat /userdata/lvm_test2.txt lvm filesystem and mount # test 파일을 만들어서, 정상적으로 Read/Write가 되는지 확인한다. [root@centos151 /]# lsblk -f NAME FSTYPE LABEL UUID MOUNTPOINT sda ├─sda1 xfs d935273d-4df1-42b6-a9df-2f30f35f1440 /boot └─sda2 LVM2_member k7ygFn-VQEz-WoX7-JLO7-w8il-1493-lnZCPU ├─centos-root xfs f3e5fdfc-2a97-4256-a235-c2fd4ce35e6b / ├─centos-swap swap fb9b757a-e3a5-41ab-a3d8-b836772bc49e [SWAP] └─centos-home xfs 99e15ffd-522b-4b9b-a832-6ba4583d888e /home sdb └─sdb1 LVM2_member xV0oOk-33aw-VgxC-GC23-ACGS-DcKf-cQqOF7 ├─centos-home xfs 99e15ffd-522b-4b9b-a832-6ba4583d888e /home └─centos-home2 xfs 4f48004f-27b8-4bd9-bce5-6b69d4d2b8dc /home2 sdc └─sdc1 LVM2_member dOalQg-A08b-TN3Q-Mal2-cs1a-4dn7-YWducr └─centos-home2 xfs 4f48004f-27b8-4bd9-bce5-6b69d4d2b8dc /home2 sdd ├─sdd1 LVM2_member xNliHe-zUP0-TsaA-qcdN-dIGc-iX19-B1wiKE │ └─addvg-userdata xfs c97b40a3-28f3-4087-a829-681dd4b37a5e /userdata └─sdd2 LVM2_member 0I73zn-deni-nfq8-MROS-pD2a-1Ysm-eYCdxn └─addvg-userdata xfs c97b40a3-28f3-4087-a829-681dd4b37a5e /userdata # /home2 , /userdata2 가 모두 정상적으로 마운트 되고, 파일시스템도 정상적으로 구성된 것을 확인할 수 있다. [root@centos151 /]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- <99.00g 0 /dev/sdb1 centos lvm2 a-- <50.00g 1.00g /dev/sdc1 centos lvm2 a-- <50.00g 0 /dev/sdd1 addvg lvm2 a-- <25.00g 0 /dev/sdd2 addvg lvm2 a-- <25.00g 0 [root@centos151 /]# vgs VG #PV #LV #SN Attr VSize VFree addvg 2 1 0 wz--n- 49.99g 0 centos 3 4 0 wz--n- <198.99g 1.00g [root@centos151 /]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert userdata addvg -wi-ao---- 49.99g home centos -wi-ao---- <90.11g home2 centos -wi-ao---- 50.00g root centos -wi-ao---- 50.00g swap centos -wi-ao---- <7.88g [root@centos151 /]# df -h Filesystem Size Used Avail Use% Mounted on /dev/mapper/centos-root 50G 1.6G 49G 4% / devtmpfs 3.9G 0 3.9G 0% /dev tmpfs 3.9G 0 3.9G 0% /dev/shm tmpfs 3.9G 8.9M 3.9G 1% /run tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup /dev/sda1 1014M 145M 870M 15% /boot /dev/mapper/centos-home 42G 33M 42G 1% /home tmpfs 783M 0 783M 0% /run/user/1000 /dev/mapper/centos-home2 50G 33M 50G 1% /home2 /dev/mapper/addvg-userdata 50G 33M 50G 1% /userdata # pvs , vgs. lvs , df -h 명령을 통해 정상적으로 파일시스템 구성과 마운트가 되었는지 확인한다. |
마지막으로 리부팅 이후에도 마운트 된 디스크들을 정상적으로 사용할 수 있도록, /etc/fstab 에 등록해 준다.
[root@centos151 /]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Tue Mar 12 01:10:26 2019 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # /dev/mapper/centos-root / xfs defaults 0 0 UUID=d935273d-4df1-42b6-a9df-2f30f35f1440 /boot xfs defaults 0 0 /dev/mapper/centos-home /home xfs defaults 0 0 /dev/mapper/centos-swap swap swap defaults 0 0 /dev/mapper/centos-home2 /home2 xfs defaults 0 0 /dev/mapper/addvg-userdata /userdata xfs defaults 0 0 # 재구동 이후에도 사용할 수 있도록 /etc/fstab에 LVM에서 생성되어 마운트 시킨 정보를 등록한다. |
'운영체제 > CentOS 강좌' 카테고리의 다른 글
CentOS 강좌 PART 1. 10 VI 에디터 소개와 사용법 (0) | 2019.03.18 |
---|---|
CentOS 강좌 PART 1. 9 YUM 소개와 YUM repository mirror 사이트 구축 (0) | 2019.03.18 |
CentOS 강좌 PART 1. 7 네트워크 구성 (0) | 2019.03.08 |
CentOS 강좌 PART 1. 6 시스템 프로세스와 자원 (0) | 2019.03.07 |
CentOS 강좌 PART 1. 5 사용자 권한 (0) | 2019.03.07 |
공지사항