뿌리 볼륨을 높이는 방법

뿌리 볼륨을 높이는 방법

소프트웨어 RAID(raid1)를 사용하는 서버가 있고 루트 파티션의 볼륨을 늘려야 합니다. Google에서 검색했지만 이를 수행하는 방법을 찾지 못했습니다. 2x1TB RAID1이 있습니다.

내 df -h:

Filesystem      Size  Used Avail Use% Mounted on
rootfs           20G   20G     0 100% /
/dev/root        20G   20G     0 100% /,
devtmpfs        3.9G  4.0K  3.9G   1% /dev
none            4.0K     0  4.0K   0% /sys/fs/cgroup
none            788M  256K  788M   1% /run
none            5.0M     0  5.0M   0% /run/lock
none            3.9G     0  3.9G   0% /run/shm
none            100M     0  100M   0% /run/user
overflow        1.0M  4.0K 1020K   1% /tmp
/dev/md3        898G   72M  852G   1% /home

내 fdisk -l:

Disk /dev/sdb: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000e1568

Device Boot      Start         End      Blocks   Id  System
/dev/sdb1   *        4096    40962047    20478976   fd  Linux RAID autodetect
/dev/sdb2        40962048    42008575      523264   82  Linux swap / Solaris
/dev/sdb3        42008576  1953517567   955754496   fd  Linux RAID autodetect

Disk /dev/sda: 1000.2 GB, 1000204886016 bytes
255 heads, 63 sectors/track, 121601 cylinders, total 1953525168 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x000a0d60

Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        4096    40962047    20478976   fd  Linux RAID autodetect
/dev/sda2        40962048    42008575      523264   82  Linux swap / Solaris
/dev/sda3        42008576  1953517567   955754496   fd  Linux RAID autodetect

Disk /dev/md3: 978.7 GB, 978692538368 bytes
2 heads, 4 sectors/track, 238938608 cylinders, total 1911508864 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md3 doesn't contain a valid partition table

Disk /dev/md1: 21.0 GB, 20970405888 bytes
2 heads, 4 sectors/track, 5119728 cylinders, total 40957824 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 4096 bytes
I/O size (minimum/optimal): 4096 bytes / 4096 bytes
Disk identifier: 0x00000000

Disk /dev/md1 doesn't contain a valid partition table

답변1

라이브 시스템에서 이 작업을 수행하는 것은 매우 까다롭습니다. 귀하가 선택한 조직은 확장과 관련하여 매우 융통성이 없습니다.

내 제안은 루트 파티션의 일부 큰 덩어리를 이동 /home하고 심볼릭 링크를 만드는 것입니다.


실제로 크기를 조정하려면 다음 방법을 사용할 수 있습니다. 시스템이 부팅되지 않거나(운이 좋은 경우) 데이터가 손실될 위험(운이 없는 경우)이 발생할 수 있으므로 먼저 가상 머신에서 연습하는 것이 좋습니다. 백업이 최신 상태인지 확인하세요.

  1. sshd를 제외한 모든 서비스를 중지합니다. RAID의 동기화를 해제하면 현재 /또는 이후에 /home파일에 수정된 모든 내용이 손실됩니다.

  2. RAID 구성 요소를 수동으로 종료 /dev/sdb하고 어레이에서 제거합니다. 또한 교환을 끄십시오 /dev/sdb2.

    mdadm /dev/md1 -f /dev/sdb1
    mdadm /dev/md1 -r /dev/sdb1
    mdadm /dev/md3 -f /dev/sdb3
    mdadm /dev/md3 -r /dev/sdb3
    swapoff /dev/sdb2
    
  3. 재분할 /dev/sdb. 보다 유연한 파티셔닝 방식인 LVM을 사용하는 것이 좋습니다. 이렇게 하면 나중에 크기를 조정하기가 훨씬 쉬워집니다. 전체 디스크에 걸쳐 있는 RAID 1 볼륨을 생성합니다(스왑 공간 제외). 나는 RAID의 새 볼륨이 지금도 /dev/sdb1여전히 /dev/sdb2스왑 공간이라고 가정합니다. 볼륨의 순서는 중요하지 않습니다.

  4. /dev/sdb1이제 단일 구성 요소가 RAID 1 볼륨의 일부를 구성하는 데 사용됩니다.

    mdadm --create /dev/md4 -l 1 -n 2 missing /dev/sdb2
    
  5. 새 RAID 볼륨을좌심실 용적물리 볼륨을 만들고 이를 포함하는 볼륨 그룹을 생성합니다.

    pvcreate /dev/md4
    vgcreate main /dev/md4
    
  6. 필요한 크기로 루트 논리 볼륨을 생성하고 나머지 여유 공간에 걸쳐 있는 기본 LV를 생성합니다.

    lvcreate --size 40g -n root main
    lvcreate --size 100%FREE -n home main
    
  7. /dev/mapper/main_root및 에서 파일 시스템을 생성합니다 /dev/mapper/main_home. 또한 실행합니다 mkswap /dev/sdb2.

  8. 새 파일 시스템을 마운트하고 거기에 데이터를 복사합니다.

    mkdir /media/new_root /media/new_home
    mount /dev/mapper/main_root /media/new_root
    mount /dev/mapper/main_home /media/new_home
    cp -ax / /media/new_root
    cp -ax / /media/new_home
    
  9. chroot /media/new_root스토리지 구성을 실행 하고 새 조직으로 업데이트합니다. 에 /etc/fstab설치하려면 업데이트해야 합니다 . 또한 스왑 항목을 주석 처리합니다 . 또한 부트로더에 따라 새 시스템을 부팅 가능하게 만들어야 합니다. LILO 및 Grub2는 LVM에서 부팅할 수 있지만 Grub 0.9x는 부팅할 수 없습니다./dev/mapper/main_root/home/dev/sda2

  10. 새 시스템으로 재부팅합니다. 가상 머신에서 모든 단계를 완료하고 제대로 작동하는지 확인한 경우에만 이 작업을 수행하세요!

  11. 재파티셔닝 /dev/sda과 동일합니다 /dev/sdb.

  12. mkswap /dev/sda2그런 다음 swapon /dev/sda2. 이제 /dev/sda2항목의 주석 처리를 제거할 수 있습니다 /etc/fstab.

  13. 새로운 RAID1 어레이에 추가 /dev/sda1하고 백그라운드에서 동기화되도록 하세요.

    mdadm --add /dev/md4 /dev/sda1
    

관련 정보