Ssh

如何增加我的根音量

  • November 18, 2018

我有一台使用軟體 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

在實時系統上執行此操作非常棘手。您選擇的組織對調整大小非常不靈活。

我的建議是將一些大塊的根分區移動到/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
  1. 重新分區/dev/sdb。我建議您使用更靈活的分區方案和 LVM。這樣你以後想要做的任何調整都會容易得多。製作跨越整個磁碟的單個 RAID 1 卷,交換空間除外。我將假設 RAID 的新卷是/dev/sdb1並且/dev/sdb2再次是交換空間。卷的順序無關緊要。
  2. 暫時/dev/sdb1使用單個組件作為 RAID 1 卷的一部分。
mdadm --create /dev/md4 -l 1 -n 2 missing /dev/sdb2
  1. 使新的 RAID 捲成為LVM物理卷,並創建一個包含它的捲組。
pvcreate /dev/md4
vgcreate main /dev/md4
  1. 創建一個具有所需大小的根邏輯卷,以及一個跨越剩餘可用空間的主 LV。
lvcreate --size 40g -n root main
lvcreate --size 100%FREE -n home main
  1. /dev/mapper/main_root在和上創建文件系統/dev/mapper/main_home。還跑mkswap /dev/sdb2
  2. 掛載新的文件系統並將您的數據複製到那裡。
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
  1. 執行chroot /media/new_root並將儲存配置更新到新組織。您需要更新/etc/fstab才能安裝/dev/mapper/main_root/home. 還要註釋掉/dev/sda2. 您還需要使新系統可引導,這取決於您的引導載入程序。請注意,LILO 和 Grub2 可以從 LVM 引導,但 Grub 0.9x 不能。
  2. 重新啟動到新系統。僅在您在 VM 中完成所有這些步驟並確認它可以工作後才執行此操作!
  3. 重新分區/dev/sda與 相同/dev/sdb
  4. mkswap /dev/sda2然後執行swapon /dev/sda2。您現在可以取消註釋/dev/sda2in的條目/etc/fstab
  5. 添加/dev/sda1到新的 RAID1 陣列並讓它在後台同步。
mdadm --add /dev/md4 /dev/sda1

引用自:https://unix.stackexchange.com/questions/83141