디스크 파티셔닝은 하드 드라이브를 여러 개의 논리 스토리지 파티션으로 나눈다. 파티션을 사용하면 다양한 요구 사항에 따라 스토리지를 분할할 수 있으며, 이러한 분할은 다양한 이점을 제공한다.
애플리케이션 또는 사용자가 사용할 수 있는 공간을 제한한다.
사용자 파일에서 운영 체제와 프로그램 파일을 구분한다.
메모리 스왑을 위해 별도 영역을 생성한다.
디스크 공간 사용을 제한하여 진단 도구 및 백업 이미징의 성능을 향상한다.
MBR 파티션
MBR 파티셔닝 체계는 BIOS 펌웨어를 실행하는 시스템의 표준
최대 네 개의 주 파티션을 지원, Linux 시스템에서는 확장 및 논리 파티션을 사용하여 최대 15개의 파티션을 생성할 수 있다.
MBR로 파티셔닝되는 디스크 크기는 최대 2TiB
GPT 파티션
UEFI 펌웨어를 실행하는 시스템의 경우 GPT 파티셔닝이 표준
GPT는 최대 128개의 파티션을 제공한다.
GPT 체계는 논리 블록 주소에 64비트를 할당하여 최대 8ZiB 또는 80억 TiB의 파티션 및 디스크를 지원한다.
GPT는 GUID(전역 고유 식별자)를 사용하여 각 디스크와 파티션을 식별한다.
GPT는 기본 GPT를 디스크 헤드에, 백업 보조 GPT를 디스크 끝부분에 배치하여 파티션 테이블을 이중화 한다.
파티션 관리
Red Hat Enterprise Linux의 표준 파티션 편집기는parted입니다.
parted 명령
parted /dev/vda print
=> 디스크의 파티션 테이블을 보여준다.
parted /dev/vda
=> 대화형 파티셔닝 세션 열기
parted /dev/vdb mklabel msdos or gpt
=> /dev/vdb 디스크의 label을 MBR or gpt 디스크 레이블로 변경해준다.
*중요
mklabel 하위 명령은 기존 파티션 테이블을 지웁니다.
기존 데이터에 관계없이 디스크를 재사용 하려는 경우 mklabel 하위 명령을 사용한다.
새 레이블이 파티션 경계를 변경하는 경우 기존 파일 시스템의 모든 데이터에 접근 할 수 없게 된다.
MBR 파티션 생성 및 삭제
- 생성 -
parted /dev/vdb
(parted) mkpart
(Partition type) primary/extended
(File system type) ext2,ext3,ext4,xfs
(starts?) 새 파티션을 시작할 디스크 섹터 지정
(End?) 새 파티션을 끝낼 디스크 섹터 지정
- 삭제 -
parted /dev/vdb
(parted) print => 파티션 번호 확인
(parted) rm 1 => 삭제할 파티션 번호 입력
gpt 파티션 생성 및 삭제
- 생성 -
parted /dev/vdb
(parted) mkpart
(Partition name) any name
(File system type) ext2,ext3,ext4,xfs
(starts?) 새 파티션을 시작할 디스크 섹터 지정
(End?) 새 파티션을 끝낼 디스크 섹터 지정
- 삭제 -
parted /dev/vdb
(parted) print => 파티션 번호 확인
(parted) rm 1 => 삭제할 파티션 번호 입력
파일 시스템 생성
mkfs 명령으로 파일 시스템을 생성 해준다.
mkfs
mkfs.[파일 type] [디스크]
ex) mkfs.xfs /dev/vdb1
파일 시스템 마운트
디렉터리와 디스크 장치를 수동으로 연결하려면 mount 명령으로 하면 된다. 그러나, mount 명령으로 하면 영구적으로 mount 되지는 않는다. 영구적으로 mount 하려면 /etc/fstab 파일을 수정해야한다.
파일 시스템 수동 mount
mount [디스크] [마운트 포인트]
ex) mount /dev/vdb1 /mnt
파일 시스템 영구 마운트 vim /etc/fstab
<디스크 장치의 UUID> <mount 포인트> <파일시스템 type> <설정> 0 0 위와 같은 형식으로 추가를 해주면 재부팅 후 영구적으로 마운트가 된다. 그러나, fstab으로 작업을 하고 재부팅을 해야 적용이 되는데 fstab에 잘못된 정보를 넣으면 재부팅이 안된다.
lsblk --fs
=> 이 명령으로 디스크 장치의 UUID를 확인 할 수 있다.
스왑 공간 관리
스왑 공간의 개념
스왑 메모리란, 실제 메모리 Ram이 가득 찼지만 더 많은 메모리가 필요할때 디스크 공간을 이용하여 부족한 메모리를 대체할 수 있는 공간을 의미합니다.
하지만, 스왑 메모리를 사용하면 속도가 상당히 느려집니다.
스왑 공간 계산
관리자는 시스템의 메모리 워크로드에 따라 스왑 공간의 크기를 조정해야 합니다.
RAM스왑 공간최대 절전 모드를 허용하는 경우 스왑 공간
2GB 이하
RAM의 두 배
RAM의 3배
2~8GB
RAM과 동일
RAM의 2배
8~64GB
4GB 이상
RAM의 1.5배
64GB 초과
4GB 이상
최대 절전 모드는 권장되지 않습니다.
스왑 공간 생성
파일 시스템 유형이 linux-swap인 파티션을 생성
장치에서 스왑 시그니처를 저장
스왑 파티션 생성 parted 명령을 사용하여 스왑 파티션을 생성할 수 있다. (파티션 테이블이 gpt)
ex)
mkswap /dev/vdb2
Setting up swapspace version 1, size = 244 MiB (255848448 bytes)
no label, UUID=39e2667a-9458-42fe-9665-c5c854605881
스왑 공간 활성화 swapon 명령을 사용하여 포맷된 스왑 공간을 활성화 할 수 있다.
ex)
[root@host ~]# swapon /dev/vdb2 or swapon -a
[root@host ~]# free
total used free shared buff/cache available
Mem: 1873036 135044 1536040 16748 201952 1575680
Swap: 249852 0 249852
스왑 공간 비활성화 swapoff 명령을 사용하여 스왑 공간을 비활성화 할 수 있다.
스왑 공간 영구 활성화 앞서 보았던 /etc/fstab 파일에 항목을 생성하여 시스템 부팅 시 스왑 공간을 영구적으로 활성화 시켜준다. ex)
vim /etc/fstab
UUID=39e2667a-9458-42fe-9665-c5c854605881 swap swap defaults 0 0
스왑 공간 우선순위 설정 기본적으로 시스템은 스왑 공간을 직렬로 사용한다. 처음에 만든 스왑 부터 우선순위가 높게 설정되어서 사용이 된다. 그러나 각 스왑 공간에 우선순위를 정의하여 특정 순서를 강제로 적용할 수 있다. 우선순위를 설정하려면 /etc/fstab 파일에서 pri 옵션을 사용하면 된다. ex)