Notice
Recent Posts
Recent Comments
Dharma
[Linux] LVM (Logical Volume Management) 설정하기 본문
LVM 은 물리적 디스크들을 가상의 디스크로 합쳐서 관리할 수 있게 해주는 관리 툴입니다. 쉽게 말해서 실제로 하드디스크 3개가 있는데 이 하드를 하나인것처럼 관리할 수 있게 해줍니다. 예전에는 큰 하드 하나를 나눠서 쓰곤 했었는 데 요즘은 그냥 통째로 하나 쓰는게 제일 편합니다.
360 , 160, 80 기가의 하드디스크가 있다면(제 실제 상황이 그렇습니다) 이 세개를 묶어서 마치 한개의 600 기가 하드 디스크 한개 인것처럼 할용할 수 있게 해줍니다.
/dev/sdc 에 이미 설치되어 있어서 변경하기는 귀찮고 또 새로 깔기 또한 귀찮으니까 /dev/sda 와 /dev/sdb 를 합쳐줄려고 생각합니다. (시스템이 설치되어 있으면 변경하는 게 무척 귀찮을 꺼 같더라고요)
설치는 간단합니다.
초 간단 용어정리
PV (Physical Volume) 물리적 볼륨
PE (Physical Extent) 물리적 범위 (?) 정도로 보시면 됩니다.
LVM 파티션들을 만들어 줍니다.
두번째 하드디스크도 LVM 으로 만들어 줍니다. 8e 가 LVM 파티션입니다.
그리고, 파티션을 나누지 않고 하드디스크 전체를 PV로 만들려고 할 때에, 파티션 정보가 기록되어 있다면 PV로 만들어지지 않을 것이다. 파티션을 fdisk등으로 전부 지워도 마찬가지인데 해결 방법은 dd등의 명령으로 파티션 정보를 깨끗히 지워주면 된다. 예를 들면 다음과 같다.
/dev/sdb 도 같은 방식으로 처리해 줍니다.
이제 PV 들을 생성해 줍니다.
두번째 하드 디스크에도 PV 를 생성해 줍니다.
이제 VG (Volume Group 입니다. LV 아닙니다) 를 만들어 줍니다.
이제 제대로 만들어 졌는지 확인해 보기로 합니다.
만들어 졌군요. 이제 활성화 시켜보겠습니다.
확인해 봅니다.
vgdisplay 가 더 자세한 정보를 보여주는 군요. 180 기가랑 60 기가를 합쳐서 위에 나오는 수치가 됐군요. 설마 아직도 180 기가가 진짜 180 기가인지 아시는분 안계시겠지요? ㅎㅎ
이제야 모든 준비가 끝났습니다. LV (Logical Volume)를 생성할 시간입니다. VG 의 크기인 223 을 기억하시고
-L 옵션은 크기 입니다. 저는 VG 크기의 223G 를 줄것입니다.
-n 은 LV 의 이름입니다. 저는 data 라고 줄것입니다.
/dev/data_vg/data 라는 심볼릭 링크가 생긴것을 확인하실 수 있습니다. 자 이제 만들어진 LV 를 포맷하는 일만 남았습니다. ext4 를 쓰고 있으니까 ext4 로 포맷을 해주어야 겠지요?
이제 설정 끝입니다. 이제 편하게 마운트 해주시면 되겠습니다.
매번 수동으로 하기 귀찮으니 fstab 에 등록 시켜줍니다. 아래 내용을 추가합니다.
이제 적당한 곳에 심볼릭 링크를 걸어서 일반 디렉토리처럼 써 주시며 됩니다.
360 , 160, 80 기가의 하드디스크가 있다면(제 실제 상황이 그렇습니다) 이 세개를 묶어서 마치 한개의 600 기가 하드 디스크 한개 인것처럼 할용할 수 있게 해줍니다.
/dev/sda = 80
/dev/sdb = 160
/dev/sdc = 360 (여기에 시스템이 설치되어 있슴)
/dev/sdb = 160
/dev/sdc = 360 (여기에 시스템이 설치되어 있슴)
/dev/sdc 에 이미 설치되어 있어서 변경하기는 귀찮고 또 새로 깔기 또한 귀찮으니까 /dev/sda 와 /dev/sdb 를 합쳐줄려고 생각합니다. (시스템이 설치되어 있으면 변경하는 게 무척 귀찮을 꺼 같더라고요)
설치는 간단합니다.
$ sudo apt-get install lvm2
초 간단 용어정리
PV (Physical Volume) 물리적 볼륨
PE (Physical Extent) 물리적 범위 (?) 정도로 보시면 됩니다.
LVM 파티션들을 만들어 줍니다.
$ sudo fdisk /dev/sda
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!
Calling ioctl() to re-read partition table.
Syncing disks.
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!
Calling ioctl() to re-read partition table.
Syncing disks.
두번째 하드디스크도 LVM 으로 만들어 줍니다. 8e 가 LVM 파티션입니다.
$ sudo fdisk /dev/sdb
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!
Calling ioctl() to re-read partition table.
Syncing disks.
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!
Calling ioctl() to re-read partition table.
Syncing disks.
그리고, 파티션을 나누지 않고 하드디스크 전체를 PV로 만들려고 할 때에, 파티션 정보가 기록되어 있다면 PV로 만들어지지 않을 것이다. 파티션을 fdisk등으로 전부 지워도 마찬가지인데 해결 방법은 dd등의 명령으로 파티션 정보를 깨끗히 지워주면 된다. 예를 들면 다음과 같다.
$ sudo dd if=/dev/zero of=/dev/sda bs=512 count=1
1+0 레코드 들어옴
1+0 레코드 나감
512 바이트 (512 B) 복사됨, 0.00197004 초, 260 kB/초
1+0 레코드 들어옴
1+0 레코드 나감
512 바이트 (512 B) 복사됨, 0.00197004 초, 260 kB/초
/dev/sdb 도 같은 방식으로 처리해 줍니다.
$ sudo dd if=/dev/zero of=/dev/sdb bs=512 count=1
1+0 레코드 들어옴
1+0 레코드 나감
512 바이트 (512 B) 복사됨, 0.0187204 초, 27.3 kB/초
1+0 레코드 들어옴
1+0 레코드 나감
512 바이트 (512 B) 복사됨, 0.0187204 초, 27.3 kB/초
이제 PV 들을 생성해 줍니다.
$ sudo pvcreate /dev/sda
Physical volume "/dev/sda" successfully created
Physical volume "/dev/sda" successfully created
두번째 하드 디스크에도 PV 를 생성해 줍니다.
$ sudo pvcreate /dev/sdb
Physical volume "/dev/sdb" successfully created
Physical volume "/dev/sdb" successfully created
이제 VG (Volume Group 입니다. LV 아닙니다) 를 만들어 줍니다.
$ sudo vgcreate data_vg /dev/sda /dev/sdb
Volume group "data_vg" successfully created
Volume group "data_vg" successfully created
이제 제대로 만들어 졌는지 확인해 보기로 합니다.
$ sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "data_vg" using metadata type lvm2
Reading all physical volumes. This may take a while...
Found volume group "data_vg" using metadata type lvm2
만들어 졌군요. 이제 활성화 시켜보겠습니다.
$ sudo vgchange -a y
0 logical volume(s) in volume group "data_vg" now active
0 logical volume(s) in volume group "data_vg" now active
확인해 봅니다.
$ sudo vgdisplay
--- Volume group ---
VG Name data_vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 223.57 GiB
PE Size 4.00 MiB
Total PE 57235
Alloc PE / Size 0 / 0
Free PE / Size 57235 / 223.57 GiB
VG UUID X7YuJy-lqY7-gwKQ-2DzZ-iaKe-adpY-eNVykk
--- Volume group ---
VG Name data_vg
System ID
Format lvm2
Metadata Areas 2
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 2
Act PV 2
VG Size 223.57 GiB
PE Size 4.00 MiB
Total PE 57235
Alloc PE / Size 0 / 0
Free PE / Size 57235 / 223.57 GiB
VG UUID X7YuJy-lqY7-gwKQ-2DzZ-iaKe-adpY-eNVykk
vgdisplay 가 더 자세한 정보를 보여주는 군요. 180 기가랑 60 기가를 합쳐서 위에 나오는 수치가 됐군요. 설마 아직도 180 기가가 진짜 180 기가인지 아시는분 안계시겠지요? ㅎㅎ
이제야 모든 준비가 끝났습니다. LV (Logical Volume)를 생성할 시간입니다. VG 의 크기인 223 을 기억하시고
-L 옵션은 크기 입니다. 저는 VG 크기의 223G 를 줄것입니다.
-n 은 LV 의 이름입니다. 저는 data 라고 줄것입니다.
$ sudo lvcreate -L 223G -n data data_vg
Logical volume "data" created
Logical volume "data" created
/dev/data_vg/data 라는 심볼릭 링크가 생긴것을 확인하실 수 있습니다. 자 이제 만들어진 LV 를 포맷하는 일만 남았습니다. ext4 를 쓰고 있으니까 ext4 로 포맷을 해주어야 겠지요?
$ sudo mkfs.ext4 /dev/data_vg/data
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
14614528 inodes, 58458112 blocks
2922905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1784 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
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.
mke2fs 1.41.14 (22-Dec-2010)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
14614528 inodes, 58458112 blocks
2922905 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=4294967296
1784 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
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.
이제 설정 끝입니다. 이제 편하게 마운트 해주시면 되겠습니다.
$ mkdir data
$ sudo mount /dev/data_vg/data ./data
$ sudo mount /dev/data_vg/data ./data
매번 수동으로 하기 귀찮으니 fstab 에 등록 시켜줍니다. 아래 내용을 추가합니다.
$ sudo emacs /etc/fstab
/dev/data_vg/data /home/crazia/data ext4 default 0 0
/dev/data_vg/data /home/crazia/data ext4 default 0 0
이제 적당한 곳에 심볼릭 링크를 걸어서 일반 디렉토리처럼 써 주시며 됩니다.