LVM을 이용한 계정별 HDD 할당
업데이트:
Ubuntu는 2TB가 넘는 하드 디스크는 따로 인식을 할 수 있도록 설정해 주어야합니다. 이렇게 인식된 하드 디스크는 혼자 컴퓨터를 사용하는 경우에는 일반적으로 /home/hdd
에 hdd를 마운트 하지만, 한 대의 컴퓨터에 여러 계정이 hdd를 공유해서 사용해야하므로, 아래의 방법으로 계정마다 400GB씩 hdd를 할당하고자 합니다.
서버 컴퓨터 hdd 확장
hdd를 컴퓨터로 인식시키기
-
4TB hdd는 일단, parted를 이용하여 디스크 할당을 먼저합니다 (https://wikidocs.net/16272)
# 4TB는 fdisk가 아닌 parted를 이용 sudo parted /dev/sdb mklabel gpt # TB 단위로 단위를 설정 unit TB # 파티션을 만들기 위해 아래 명령어 입력 mkpart primary 0TB 4TB # 만들어진 파티션 번호를 lvm으로 설정 (print 명령어를 통해 디스크 번호 확인 가능) set 1 lvm on # parted를 빠져나옵니다 quit ## 사용전에 디스크를 포맷 sudo mkfs.ext4 /dev/sdb1
-
가상 머신 사용하기
# lvm2, udev requirements sudo apt-get install lvm2 sudo apt-get install -y udev # 물리적 공간 할당 sudo pvcreate /dev/sdb1 # 가상 머신 생성 sudo vgcreate vg1 /dev/sdb1 # 논리적 공간 할당 sudo lvcreate -n [account] -L 400G vg1 # 논리적 공간 포맷 mkfs.ext4 /dev/vg1/[account]
계정에 생성된 lvm mount
-
내 계정에서 hdd 디렉토리를 만들고 hdd를 mount 합니다.
mkdir hdd sudo mount /dev/vg1/[계정명]/ hdd sudo chown 계정명 hdd sudo chgrp 계정명 hdd
-
이후에 pc가 껐다 켜져도 로그인 할때마다 자동 마운트 되도록 위해서 ~/.bashrc에 아래 코드를 추가합니다.
Filename="/home/[account]/hdd/lost+found" if [ -d "$Filename" ]; then echo '' else echo '[password]' | sudo -S mount /dev/vg1/[account] /home/[account]/hdd fi
-
아래 명령어 입력
chattr +i ~/.bashrc
디스크 용량 추가 할당
-
lvm에 용량 추가
lvextend -L +200G /dev/vg1/[lvm이름]
-
filesystem에 용량 증설
resize2fs -p /dev/mapper/vg1-[lvm이름]
lvm 삭제
- 삭제는 생성과 역순으로 해줘야 한다.
- disk umount -> lv -> vg -> pv -> fdisk 삭제 (연구실 컴퓨터의 경우에는 lv가 모두 같은 vg안에 생성되었기 때문에 lv만 삭제하면 된다.)
- lv에 대한 포맷은 따로 필요가 없다
-
mount 해제
$ df -h Filesystem Size Used Avail Use% Mounted on . . . /dev/loop18 219M 219M 0 100% /snap/gnome-3-34-1804/66 tmpfs 11G 16K 11G 1% /run/user/121 /dev/mapper/vg1-user 295G 111G 169G 40% /home/user/hdd # 지우고자 하는 대상 $ umount /home/user/hdd
-
lvm 제거
$ lvscan . . ACTIVE '/dev/vg1/user' [300.00 GiB] inherit $ lvremove /dev/vg1/user Do you really want to remove active logical volume user? [y/n]: y Logical volume 'user' successfully removed
댓글남기기