전자책 출간 알림 [마이크로서비스패턴 쉽게 개발하기]

티스토리 뷰

기본 스토리지를 파일시스템으로 마운트하는 방법과 SWAP공간을 관리하는 방법에 대해 설명합니다.

Disk의 사용현황을 보는 명령들은 아래 글에 잘 정리되어 있습니다. 

https://zetawiki.com/wiki/%EB%A6%AC%EB%88%85%EC%8A%A4_%EC%A0%84%EC%B2%B4_%EB%94%94%EC%8A%A4%ED%81%AC_%EC%82%AC%EC%9A%A9%EB%9F%89_%ED%99%95%EC%9D%B8

 

리눅스 전체 디스크 사용량 확인 - 제타위키

 

zetawiki.com

파티션 생성, 파일시스템 생성, 마운트

1. 파티션 생성

파티션의 스키마에는 MBR(Master Boot Record)와 GPT(GUUID Partition Table)가 있습니다.

구분 MBR GPT
최대 파티션 갯수 15 128
최대 용량 2TB 80억 TB

파티션을 생성하는 명령은 parted, fdisk, gdisk가 있습니다.

parted는 MBR과 GPT 타입 모두 생성할 수 있으나, 사용법이 약간 어렵습니다.

fdisk는 MBR타입 전용이고, gdisk는 GPT타입 전용입니다.

그럼, 각각의 명령어를 사용하여 partition 3개를 만들어 보겠습니다.

- 디바이스 리스트를 확인합니다.

vda, vdb, vdc, vdd 4개가 있습니다.

$ lsblk

 

1) Parted로 파티션 만들기

- vdb 디바이스에 파티션을 만듭니다.

parted로 MBR타입의 파티션을 만듭니다. mklabel msdos라고 하면 됩니다.

$ parted /dev/vdb mklabel msdos

parted로 GPT타입의 파티션을 만듭니다. mklabel gpt라고 하면 됩니다.

파티션타입을 바꾸면 기존의 파티션은 모두 사라집니다.

$ parted /dev/vdb mklabel gpt

parted가 사용이 약간 까다로운건 Start와 End의 위치를 지정할때 계산이 필요하기 때문입니다.

아래와 같이 print명령으로 현재 파티션을 보고 시작과 끝 위치를 계산해야 합니다. fdisk나 gdisk는 자동으로 계산해 줍니다.

 

TIP: 한줄 명령으로 파티션을 만들 수도 있습니다.

주의할 건 MBR로 만들때는 mkpart <primary or extend> ... 이고, GPT는 mkpart <Partion name>이라는 것입니다.

MBR 타입
$ parted /dev/vdb mkpart primary xfs 2048s 1001MB

GPT 타입
$ parted /dev/vdb mkpart mydata xfs 2048s 1001MB

 

2) fdisk로 파티션 만들기

- fdisk로 /dev/vdc에 파티션을 만듭니다.

 

3) gdisk로 파티션 만들기

- gdisk로 /dev/vdd에 파티션을 만듭니다.

gdisk를 먼저 설치해야 합니다. yum install -y gdisk로 설치하십시오. centos8에서는 dnf install -y gdisk로 설치합니다. 

gdisk의 사용법은 fdisk와 유사합니다. gdisk는 디바이스의 현재 파티션테이블도 보여줍니다.


2. 파일시스템 만들기

- lsblk 만들어진 파티션 목록을 보고, mkfs.xfs <파티션>으로 파일시스템을 만듭니다.

Filesystem format이 ext4인 경우는 mkfs.ext4라고 하면 됩니다.

mkfs.ext4 /dev/vdc1

※ xfs vs ext4

ext4파일 시스템은 최대 16TB까지 지원합니다. 16TB 보다 큰 파일 시스템의 경우 xfs를 사용하는것이 좋습니다.

 

3. 마운트 시키기

- lsblk --fs 명령어로 각 파일시스템의 UUID를 구합니다.

- /etc/fstab 파일에 추가합니다.

각 컬럼의 의미는 UUID, 마운트할 디렉토리, 파일시스템유형, 디바이스옵션, dump명령 옵션, fsck실행순서입니다.

dump명령 옵션은 0으로 하면 됩니다.

fsck(file system check)는 OS부팅 시 실행순서인데, xfs는 수행을 안하므로 0이라고 합니다. ext4인 경우 primary는 1로, extend는 2로 하십시오.

ext4 파일 시스템인 경우 아래 예를 참조 하십시오.

# primary disk
UUID=xxxx /data ext4 defaults 0 1

# secondary disk
UUID=xxxx /data ext4 defaults 0 2

 

- mount -a 또는 mount <마운트 디렉토리>로 마운트 시킵니다.  df -h 로 마운트 되었는지 확인합니다. 

 

- systemctl daemon-reload하거나, rebooting한 후 마운트가 정상적으로 되어 있는지 확인합니다.

$ reboot

 

SWAP공간 관리

Swapping이란 ?

RAM 여유 공간이 없을 때 새로운 프로세스를 실행시키기 위해, 일부 프로세스를 디스크의 Swap공간으로 보냈다(Swap out)가 필요할 때 다시 RAM으로 갖고 오는(Swap in)하는 가상메모리 관리 기법입니다.

VMM(Virtaul Memory Management)은 프로세스 단위가 아닌 페이징 단위로 스와핑합니다.

 

swap공간 크기에 대한 가이드는 아래와 같습니다.

최대 절전 모드가 허용되면 OS정지 시 RAM의 모든 프로세스를 Swap공간에 저장하므로, 크기가 좀 더 커야 합니다.

 

 

Swap파티션 만들기, 포맷, Swap공간 활성화

- Swap공간을 만들 디바이스의 현재 파티션을 확인합니다.

- parted명령으로 'myswap'이라는 이름으로 swap파티션을 만듭니다. Filesystem 유형은 반드시 'linux-swap'이라고 합니다.

- Swap파티션의 format은 mkswap명령을 이용합니다.

 

- 영구적으로 swap공간을 할당하기 위하여 /etc/fstab에 추가합니다.

마운트할 디렉토리와 파일시스템 유형은 반드시 'swap'이라고 합니다.

 

- daemon을 재시작하고, swapon -a 명령으로 /etc/fstab에 지정한 swap공간을 활성화 시킵니다.

 

swap관련 명령어

- swap공간 활성화: swapon <swap공간명>. 예) swapon /dev/vdd2

- swap공간 보기: swapon -s OR swapon --show

- swap 사용가능 크기 보기: free

- swap공간 비활성화: swapoff <swap공간명> 예) swapoff /dev/vdd2

 

swap공간의 우선순위 지정하기

swap공간이 여러개인 경우 우선순위를 지정할 수 있습니다. /etc/fstab에 옵션을 defaults대신에 pri=<우선순위값>으로 지정하십시오.

defaults로 지정한 swap공간의 우선순위 값은 -2입니다. 우선 순위값이 높을 수록 먼저 swap공간으로 사용됩니다.

- /dev/vdd에 swap파티션 하나를 더 만들고, 포맷합니다.

 

- /etc/fstab에 추가합니다. 이 공간을 먼저 swapping시 사용하기 위해 우선순위를 높입니다.

- 리부팅합니다. systemctl daemon-reload로는 적용되지 않습니다.

- swapon -s 로 확인합니다.

 

 

 

 

댓글

전자책 출간 알림 [마이크로서비스패턴 쉽게 개발하기]