반응형
서버 온라인 중 파티션 증설
목차
* SuSE15를 기준으로 작성했지만, Redhat CentOS 등의 리눅스도 동일하게 적용합니다.
상황 가정
증설할 / 파티션 영역이 하위에 OS상에서 삭제해도 무방한 파티션이 위치해 있을 경우입니다. (SWAP or DATA영역) 만약, 다른 OS 파티션 영역(예를들어 /var나 /usr인 경우)이 디스크 파티션 순서상 / 파티션 보다 아래있다면 증설이 어렵습니다.
파티션의 증설을 더 유연하게 하게 해주는 것이 LVM이므로, LVM 사용을 추천합니다.
ex)
/dev/sda1 = /boot
/dev/sda2 = /
/dev/sda3 = swap
Step 1. /etc OS 설정 파일 백업
# tar -cf /root/bk/etc.tar /etc
* 참고 |
설정 변경 작업에 있어 백업은 항상 필수입니다. |
Step 2. 명령어를 통한 현재 파티션 상태 확인
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 400G 0 disk
├─sda1 8:1 0 2G 0 part /boot
├─sda2 8:2 0 250G 0 part /
└─sda3 8:3 0 60G 0 part [SWAP]
sdb 8:16 0 10G 0 disk
sr0 11:0 1 11.5G 0 rom
# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 59 0 59
* 참고 |
기존 SWAP을 지우고 / 파티션 영역을 증설 할 예정입니다. |
Step 3. growpart rpm 패키지 설치
# rpm -qa | grep growpart
# rpm -Uvh growpart-0.31-5.9.3.noarch.rpm
Preparing... ################################# [100%]
Updating / installing...
1:growpart-0.31-5.9.3 ################################# [100%]
# rpm -qa | grep growpart
growpart-0.31-5.9.3.noarch
* 참고 |
SuSE15에서는 growpart RPM이지만, CentOS나 RHEL에서는 cloud-utils-growpart RPM을 설치해줍니다. SuSE RPM은 SuSE 홈페이지에서 trial 아이디를 만들어 다운로드했습니다. |
Step 4. Swap 파티션 off
# swapoff /dev/sda3
# free -g
total used free shared buff/cache available
Mem: 1 0 1 0 0 1
Swap: 0 0 0
* 참고 |
SWAP 파티션을 삭제하기 위해서 SWAP을 off 해줍니다. 만약 다른 파티션이라면 크리티컬 할 수 있습니다. DATA 영역이라면 다른 곳에 백업한 뒤 파티션을 재생성 해주는 방법이 있습니다. |
Step 5. fdisk 명령어를 통한 Swap 파티션 삭제
# fdisk /dev/sda
Welcome to fdisk (util-linux 2.33.1).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sda: 400 GiB, 429496729600 bytes, 838860800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5F1FC6CB-47F5-44C3-A92F-7788B940FF43
Device Start End Sectors Size Type
/dev/sda1 2048 4196351 4194304 2G Linux filesystem
/dev/sda2 4196352 528484351 524288000 250G Linux filesystem
/dev/sda3 528484352 654313471 125829120 60G Linux swap
Command (m for help): d
Partition number (1-3, default 3): 3
Partition 3 has been deleted.
Command (m for help): p
Disk /dev/sda: 400 GiB, 429496729600 bytes, 838860800 sectors
Disk model: VBOX HARDDISK
Units: sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disklabel type: gpt
Disk identifier: 5F1FC6CB-47F5-44C3-A92F-7788B940FF43
Device Start End Sectors Size Type
/dev/sda1 2048 4196351 4194304 2G Linux filesystem
/dev/sda2 4196352 528484351 524288000 250G Linux filesystem
Command (m for help): w
The partition table has been altered.
Syncing disks.
* 참고 |
/dev/sda3 SWAP 영역이 삭제 된 것을 확인 할 수 있습니다. |
Step 6. Swap 파티션 삭제 확인
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 400G 0 disk
├─sda1 8:1 0 2G 0 part /boot
└─sda2 8:2 0 250G 0 part /
sdb 8:16 0 10G 0 disk
sr0 11:0 1 11.5G 0 rom
# partprobe /dev/sda
* 참고 |
lsblk 명령어로 확인을 한 뒤 sda3가 삭제되지 않았다면 partprobe 명령어를 통해 실시간 적용을 해줍니다. |
Step 7. growpart 명령어를 통한 / 파티션 영역 증설
# growpart /dev/sda 2
CHANGED: partition=2 start=4196352 old: size=524288000 end=528484352 new: size=834664415 end=838860767
# xfs_growfs /
meta-data=/dev/sda2 isize=512 agcount=4, agsize=16384000 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1 spinodes=0 rmapbt=0
= reflink=0
data = bsize=4096 blocks=65536000, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal bsize=4096 blocks=32000, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
data blocks changed from 65536000 to 104333051
* 참고 |
growpart 명령어를 통해 /dev/sda2 ( '/' ) 영역을 sda의 마지막 영역까지 증가시켜 줍니다. 명령어는 /dev/sda(띄어쓰기)2 입니다. xfs_growfs 명령어는 기존에 마운트되어 있는 XFS 파일 시스템을 확장하는 명령어입니다. 파일 시스템은 증설을 위해 마운트포인트에 마운트되어야 하고, 온라인 중에 XFS 파일시스템의 추가된 공간을 적용키십니다. 추가로, 파티션 증설을 원하는 만큼 증설하는 방법을 찾을 수 없었습니다. 혹시 아시는 분은 댓글로 알려주시면 감사하겠습니다. 다른 방법으로는 fdisk에서 새로운 파티션을 생성할 때 특정 sector 만큼 뒤에서 head를 잡는 방법이 있는데 정확한 사이즈 계산이 어려워 설명하지 않았습니다. |
Step 8. lsblk 명령어를 통한 파티션 증설 확인
# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 400G 0 disk
├─sda1 8:1 0 2G 0 part /boot
└─sda2 8:2 0 398G 0 part /
sdb 8:16 0 10G 0 disk
sr0 11:0 1 11.5G 0 rom
* 참고 |
기존 파티션 250G에서 398G가 된 것을 확인 할 수 있습니다. SWAP 영역을 삭제 했기 때문에 다른 disk를 장착하여 SWAP을 생성하고 마운트 하면됩니다. |
Ref
* 참고 사이트 & 문헌 |
https://www.linuxtechi.com/extend-xfs-root-partition-without-lvm-linux/ |
반응형
'리눅스 > OS 설정' 카테고리의 다른 글
[Linux] 정리 전 명령어 (0) | 2022.03.03 |
---|---|
[리눅스] ssh port 추가 (0) | 2022.02.12 |
[리눅스] Bus 주소를 이용한 binding (0) | 2022.01.18 |
[SuSE15SP] Swap 파티션 삭제 및 재생성 (0) | 2022.01.11 |
[Ubuntu] Local repository 구성 (0) | 2021.07.20 |