반응형
리눅스에서 LVM(Logical Volume Manager)을 사용하여 하드 디스크를 증설하는 방법
LVM을 사용하면 하드 디스크의 크기를 동적으로 관리할 수 있으므로, 디스크 공간을 필요에 따라 유연하게 증설할 수 있습니다.
아래 단계는 CentOS/RHEL 계열의 리눅스 배포판을 기준으로 설명합니다.
중요: 디스크 증설 작업은 데이터의 손실 가능성이 있는 작업이므로, 꼭 백업을 수행하고 신중하게 진행해야 합니다.
하드디스크 증설 전 파이션 정보
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
38G 21G 15G 59% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/xvda1 485M 32M 429M 7% /boot
/dev/mapper/VolGroup-lv_home
36G 179M 34G 1% /home
/dev/xvdb1 99G 15G 80G 16% /data
1. 하드 디스크 추가하기
가상 머신이나 물리적 서버에 새로운 하드 디스크를 추가합니다.
$ fdisk –l
…
Disk /dev/xvdc: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x00000000
2. 파티션 생성하기 (옵션)
새로 추가한 디스크를 파티션으로 나눌 수도 있습니다. 이 단계는 선택 사항이며, 파티션을 사용하지 않고 직접 LVM으로 디스크를 관리할 수도 있습니다.
fdisk /dev/xvdc
$ fdisk /dev/xvdc
Command (m for help): n
Command action
e extended
p primary partition (1-4)
p
Partition number (1-4): 1
First cylinder (1-13054, default 1): (Enter)
Using default value 1
Last cylinder, +cylinders or +size{K,M,G} (1-13054, default 13054): (Enter)
Using default value 13054
Command (m for help): p
Disk /dev/xvdc: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x64939e91
Device Boot Start End Blocks Id System
/dev/xvdc1 1 13054 104856223+ 83 Linux
Command (m for help): t
Selected partition 1
Hex code (type L to list codes): 8e
Changed system type of partition 1 to 8e (Linux LVM)
Command (m for help): w
The partition table has been altered!
fdisk –l
$ fdisk –l
…
Disk /dev/xvdc: 107.4 GB, 107374182400 bytes
255 heads, 63 sectors/track, 13054 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0x64939e91
Device Boot Start End Blocks Id System
/dev/xvdc1 1 13054 104856223+ 8e Linux LVM
3. LVM Physical Volume(PV) 생성하기
새로 추가한 디스크나 파티션을 LVM의 Physical Volume로 설정합니다.
pvscan
$ pvscan
PV /dev/xvda2 VG VolGroup lvm2 [79.51 GiB / 0 free]
Total: 1 [79.51 GiB] / in use: 1 [79.51 GiB] / in no VG: 0 [0 ]
sudo pvcreate /dev/sdb1 # 디스크 전체를 사용할 경우에는 /dev/sdb를 지정합니다.
$ pvcreate /dev/xvdc1
Writing physical volume data to disk "/dev/xvdc1"
Physical volume "/dev/xvdc1" successfully created
pvdisplay
pvdisplay
--- Physical volume ---
PV Name /dev/xvda2
VG Name VolGroup
PV Size 79.51 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 20354
Free PE 0
Allocated PE 20354
PV UUID U6Zndd-VaQa-c0Ax-4xOZ-nYnu-DuxF-MU2QQe
"/dev/xvdc1" is a new physical volume of "100.00 GiB"
--- NEW Physical volume ---
PV Name /dev/xvdc1
VG Name
PV Size 100.00 GiB
Allocatable NO
PE Size 0
Total PE 0
Free PE 0
Allocated PE 0
PV UUID Cz40bS-cIy6-rTDC-jGTE-l26a-GVCU-wEdF1e
4. LVM Volume Group(VG) 생성하기
기존 VG가 존재하는 경우에는 새로운 PV를 기존 VG에 추가할 수 있습니다.
vgdisplay
$ vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 4
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 1
Act PV 1
VG Size 79.51 GiB
PE Size 4.00 MiB
Total PE 20354
Alloc PE / Size 20354 / 79.51 GiB
Free PE / Size 0 / 0
VG UUID qvHBC1-0JCQ-vF2N-CYl1-Lt3B-hmcA-ozy8Sf
sudo vgextend VolGroup /dev/xvdc1
$ vgextend VolGroup /dev/xvdc1
Volume group "VolGroup" successfully extended
vgdisplay
$ vgdisplay
--- Volume group ---
VG Name VolGroup
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 3
Open LV 3
Max PV 0
Cur PV 2
Act PV 2
VG Size 179.50 GiB
PE Size 4.00 MiB
Total PE 45953
Alloc PE / Size 20354 / 79.51 GiB
Free PE / Size 25599 / 100.00 GiB
VG UUID qvHBC1-0JCQ-vF2N-CYl1-Lt3B-hmcA-ozy8Sf
기존 VG가 없고 새로운 VG를 만들려면 vgcreate 명령어로 VG를 생성합니다.
728x90
5. LVM Logical Volume(LV) 생성하기
PV를 사용하여 LV를 생성합니다. 이 단계에서 증설하려는 크기를 설정할 수 있습니다.
lvdisplay
$ lvdisplay
--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID Ly6a7c-HZgZ-vwf8-RcJS-EGBQ-f6ZP-JZrnsE
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 1
LV Size 37.91 GiB
Current LE 9704
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
...
sudo lvextend -l +25599 /dev/VolGroup/lv_root
$ lvextend -l +25599 /dev/VolGroup/lv_root
Extending logical volume lv_root to 137.90 GiB
Logical volume lv_root successfully resized
lvdisplay
$ lvdisplay
--- Logical volume ---
LV Path /dev/VolGroup/lv_root
LV Name lv_root
VG Name VolGroup
LV UUID Ly6a7c-HZgZ-vwf8-RcJS-EGBQ-f6ZP-JZrnsE
LV Write Access read/write
LV Creation host, time ,
LV Status available
# open 1
LV Size 137.90 GiB
Current LE 35303
Segments 2
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 253:0
...
6. 파일 시스템 생성하기
LV를 사용할 파일 시스템을 생성합니다. 예를 들어, ext4 파일 시스템을 생성하는 경우
sudo mkfs.ext4 /dev/my_vg/my_lv
sudo resize2fs /dev/mapper/VolGroup-lv_root
7. 파일 시스템 크기 조정하기
resize2fs 명령어를 사용하여 파일 시스템 크기를 확장합니다. 확장할 LV의 디바이스 경로를 사용합니다.
$ resize2fs /dev/mapper/VolGroup-lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/mapper/VolGroup-lv_root is mounted on /; on-line resizing required
old desc_blocks = 3, new_desc_blocks = 9
Performing an on-line resize of /dev/mapper/VolGroup-lv_root to 36150272 (4k) blocks.
The filesystem on /dev/mapper/VolGroup-lv_root is now 36150272 blocks long.
8. 확인하기
$ df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
136G 21G 109G 17% /
tmpfs 1.9G 0 1.9G 0% /dev/shm
/dev/xvda1 485M 32M 429M 7% /boot
/dev/mapper/VolGroup-lv_home
36G 179M 34G 1% /home
/dev/xvdb1 99G 15G 80G 16% /data
이제 단계별로 따라가면서 CentOS 7.x에서 LVM을 사용하여 하드 디스크를 증설할 수 있습니다. LVM을 사용하면 유연하게 디스크 공간을 증설하고 관리할 수 있으므로, 서버 운영에 매우 유용합니다.
728x90
반응형
'리눅스' 카테고리의 다른 글
389 Directory Server 오류 (0) | 2015.04.07 |
---|---|
리눅스에서 라우팅을 추가하는 방법 (0) | 2015.04.01 |
RHEL(Red Hat Enterprise Linux)에서 권장되는 스왑 공간(swap 메모리) (0) | 2015.03.30 |
리눅스에서 특정 인터페이스에 대해 Promiscuous Mode를 활성화하거나 비활성화하는 방법 (0) | 2015.03.27 |
top 명령어 (0) | 2015.03.19 |