리눅스/OS 설정

[리눅스] 리눅스 online 중 파티션 증설

ㅎㄷㄹㅁㅇ 2022. 1. 20. 23:06
반응형

서버 온라인 중 파티션 증설

목차

     

    * 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/

     

    반응형
    TOP