디스크 마운트(feat. ubuntu)
서버나 VM에 디스크를 추가 하면 리눅스는 '마운트'라는 개념으로 디스크를 추가한다.
root@blue:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
loop1 7:1 0 55.5M 1 loop /snap/core18/2979
loop2 7:2 0 100.4M 1 loop /snap/oracle-cloud-agent/106
loop3 7:3 0 50.9M 1 loop /snap/snapd/25577
loop4 7:4 0 48.1M 1 loop /snap/snapd/25935
loop5 7:5 0 55.5M 1 loop /snap/core18/2999
sda 8:0 0 46.6G 0 disk
├─sda1 8:1 0 45.6G 0 part /
├─sda14 8:14 0 4M 0 part
├─sda15 8:15 0 106M 0 part /boot/efi
└─sda16 259:0 0 913M 0 part /boot
sdb 8:16 0 100G 0 disk 이런식으로 sdb 라는 디스크가 인식된다
root@blue:~# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.39.3).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): n #신규 디스크 생성
Partition type
p primary (0 primary, 0 extended, 4 free)
e extended (container for logical partitions)
Select (default p): p #프라이머리 타입으로 하겠다.
Partition number (1-4, default 1): # 기본값으로 한다. 엔터
First sector (2048-209715199, default 2048): # 기본값으로 한다. 엔터
Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-209715199, default 209715199):
Created a new partition 1 of type 'Linux' and of size 100 GiB.
Partition #1 contains a ext4 signature.
Do you want to remove the signature? [Y]es/[N]o: Y #그전에 생성한 이력이 있어서...
The signature will be removed by a write command.
Command (m for help): t #파티션 타입을 설정하겠다.
Selected partition 1
Hex code or alias (type L to list all): 8E #파티션 타입중 Linux LVM 을 선택
Changed type of partition 'Linux' to 'Linux LVM'.
Command (m for help): w #저장하고 나가기
The partition table has been altered.
Calling ioctl() to re-read partition table.
Syncing disks.
root@blue:~# fisk 파티션 설정
추가한 디스크를 fdisk로 파티션을 설정해줘야 한다.
파티션을 나누는 경우보다는 디스크를 묶는 경우가 많기 때문에 Linux LVM을 선택을 많이 한다. 이 형식은 디스크를 운영중에도 병합할 수 있는 특징이 있다.
root@blue:~# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 46.6G 0 disk
├─sda1 8:1 0 45.6G 0 part /
├─sda14 8:14 0 4M 0 part
├─sda15 8:15 0 106M 0 part /boot/efi
└─sda16 259:0 0 913M 0 part /boot
sdb 8:16 0 100G 0 disk
└─sdb1 8:17 0 100G 0 part #sdb1 이라는 디스크가 생성
root@blue:~# mkfs -t ext4 /dev/sdb1 # ext4로 포맷
mke2fs 1.47.0 (5-Feb-2023)
Discarding device blocks: done
Creating filesystem with 26214144 4k blocks and 6553600 inodes
Filesystem UUID: 1e01def6-4caa-480b-a532-c237683f5a48 #여기에 이미 UUID가생성
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208,
4096000, 7962624, 11239424, 20480000, 23887872
Allocating group tables: done
Writing inode tables: done
Creating journal (131072 blocks):
done
Writing superblocks and filesystem accounting information: done
root@blue:~#
root@blue:~# lsblk -f #f옵션을 주면 파티션타입과 UUID도 볼수 있다.
NAME FSTYPE FSVER LABEL UUID FSAVAIL FSUSE% MOUNTPOINTS
sda
├─sda1 ext4 1.0 cloudimg-rootfs 9daa54fe-5a0a-41c0-88c2-c466a2f56271 30.3G 31% /
├─sda14
├─sda15 vfat FAT32 UEFI 21BD-0A23 98.2M 6% /boot/efi
└─sda16 ext4 1.0 BOOT 68e0fdc6-1e8b-4a08-a760-bc54f2137f8c 664.9M 17% /boot
sdb
└─sdb1 ext4 1.0 1e01def6-4caa-480b-a532-c237683f5a48
root@blue:~# 파티션이 생성되었다./dev/sdb1
B디스크 디바이스에 sdb1이라는 파티션이라는뜻이다.
UUID(Universally Unique Identifier)를 강조하는 이유는 이 값으로 마운트를 해야 후에 디스크 에러가 생길 확률이 적어진다. /dev/sdb1를 마운트 하면 재부팅시에 오류가 생길 수 있기 때문이다.

포맷까지 끝났으면 마운트를 해줘야 한다.
UUID=새로만든UUID를 넣어준다 defaults 1 2
1e01def6-4caa-480b-a532-c237683f5a48
root@blue:~# mkdir /docker #마운트할 디렉토리 생성
root@blue:~# mount -a #fstab 에 적은 마운트 값 적용
mount: (hint) your fstab has been modified, but systemd still uses
the old version; use 'systemctl daemon-reload' to reload.
root@blue:~# systemctl daemon-reload #시키는 대로 해줘라.
root@blue:~# mount -a #아무런 오류가 없으면 정상작동했다는 뜻
root@blue:~# df -hT #시스템확인하면
Filesystem Type Size Used Avail Use% Mounted on
tmpfs tmpfs 96M 1.9M 94M 2% /run
efivarfs efivarfs 256K 35K 217K 14% /sys/firmware/efi/efivars
/dev/sda1 ext4 45G 14G 31G 32% /
tmpfs tmpfs 478M 0 478M 0% /dev/shm
tmpfs tmpfs 5.0M 0 5.0M 0% /run/lock
/dev/sda16 ext4 881M 154M 665M 19% /boot
/dev/sda15 vfat 105M 6.2M 99M 6% /boot/efi
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/b00b3dad0e6cb311e4ea42a97f1896a4d4a918e282290820c37a69b51e1e3cda/merged
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/de292706bae05840b24cbf9b86538dcd67ed02497eb63db8094a20a88f51556e/merged
prox:/mnt/pve/main nfs4 234G 67G 155G 31% /mnt/main
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/7e98fa593f6ae1b98216d4b2643785fc59cb86995c368c05b849119a3e3157b3/merged
prox:/mnt/pve/ssd nfs4 469G 337G 108G 76% /mnt/ssd
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/23bf542acfe55b6f1052e564a22a44a55627093ebb63561374bae5acc55de7ae/merged
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/9233c453eff1571420f034fa4c0709230852ded6c4aac04e3cd0a974fa44a5f6/merged
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/912f799a62bd87942afb298b1aa9993badbf989ca1934c21f0bd50171f3a4932/merged
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/3469a15389b0899b59bb20670f25467eb896b37436a2ad4b50a0f5a56a4dcc45/merged
overlay overlay 45G 14G 31G 32% /var/lib/docker/overlay2/e4651c06e16c740f8d594dcaa04e9619cf7fcd8202fc8254ae08ce56556ba72b/merged
tmpfs tmpfs 478M 4.0K 478M 1% /var/lib/docker/containers/2230eab6daec893ed1887f10c4526e75b765120e335809e4fb6cf4ce86fa26b4/mounts/secrets
tmpfs tmpfs 96M 12K 96M 1% /run/user/0
/dev/sdb1 ext4 98G 24K 93G 1% /docker #여기에 마운트 확인
root@blue:~# 이러면 마운트가 완료된 것이다.
위에도 얘기했지만 Linux LVM형식은 운영중에도 lvextend명령어로 확장 가능하다.
이 형식이 아니면 서비즈 중단->DB중단-> 디스크umount->디스크 추가-> 디스크 확장-> 디스크 mount-> DB기동-> 서비스 기동순으로 작업을 해줘야 한다. 안그러면 사용중인 디스크라서 안된다고 계속 오류 발생
그러면 pv, vg, lv 개념까지 알아야 한다....
디스크 추가-> pv생성> vg생성>lv생성>확장