jae-jae
8/24/2016 - 8:53 AM

kvm服务器系统盘与数据盘合并脚本

kvm服务器系统盘与数据盘合并脚本

执行

1.合并系统盘与数据盘

wget https://gist.githubusercontent.com/jae-jae/6010e2ab7e5cd857e22a9c90817f6343/raw/3733ba54077bf7dcb522d21b105a4d82e58581d1/merge-hrad-disk.sh
bash merge-hrad-disk.sh

2.扩展swap分区,合并系统盘与数据盘

wget https://gist.githubusercontent.com/jae-jae/6010e2ab7e5cd857e22a9c90817f6343/raw/1c8da2ab055179902f57c74a2f5006a8467a3563/merge-hrad-disk-and-swap.sh
bash merge-hrad-disk-and-swap.sh
#!/bin/sh

apt-get update
apt-get -y install kpartx lvm2
kpartx -d /dev/vdb
dd if=/dev/zero of=/dev/vdb bs=512 count=1

# 注意这里要分两个区
fdisk /dev/vdb

mkswap /dev/vdb1
echo "/dev/vdb1 none swap defaults 0 0" >> /etc/fstab
swapon -a


pvcreate -yff /dev/vdb2
VGNAME=`vgdisplay | grep "VG Name" | awk '{print $3}'`
vgextend $VGNAME /dev/vdb2
PESIZE=`vgdisplay $VGNAME | grep "Free  PE / Size" | awk '{print $5}'`
lvms=`df / | egrep "^/dev" | awk '{print $1}'`
lvresize -l +$PESIZE $lvms
resize2fs $lvms
df -h /
free -m
#!/bin/sh

apt-get update
apt-get -y install kpartx lvm2
kpartx -d /dev/vdb
dd if=/dev/zero of=/dev/vdb bs=512 count=1

fdisk /dev/vdb

pvcreate -yff /dev/vdb1
VGNAME=`vgdisplay | grep "VG Name" | awk '{print $3}'`
vgextend $VGNAME /dev/vdb1
PESIZE=`vgdisplay $VGNAME | grep "Free  PE / Size" | awk '{print $5}'`
lvms=`df / | egrep "^/dev" | awk '{print $1}'`
lvresize -l +$PESIZE $lvms
resize2fs $lvms
df -h /


fdisk /dev/vdb
Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel
Building a new DOS disklabel with disk identifier 0x1ea1ca70.
Changes will remain in memory only, until you decide to write them.
After that, of course, the previous content won't be recoverable.

Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite)

Command (m for help): n     #輸入n,進行新建分區操作
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):      #輸入p,或直接按Enter,創建主分區(主分區最多四個)
Using default response p
Partition number (1-4, default 1):      #輸入新分區的編號,或直接按Enter,請注意分區號不能重複 
Using default value 1
First sector (2048-67108863, default 2048):      #輸入起始扇區,按Enter使用默認值
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-67108863, default 67108863):     #輸入終止扇區,支持+扇區數目(表示以起始扇區+扇區數目的結果作為終止扇區),或+容量,例如+5G(fdisk將會自動計算5 Gbytes需要多少個扇區,並以起始扇區+5 Gbytes所需的扇區數目的結果作為終止扇區)。直接輸入Enter使用默認值
Using default value 67108863

Command (m for help): t     #輸入t,更改分區類型
Selected partition 1     #如果僅有一個分區,會自動選擇僅有的分區,否則需要手動輸入分區編號
Hex code (type L to list codes): 8e      #輸入8e,表示物理卷
Changed system type of partition 1 to 8e (Linux LVM)

Command (m for help): w     #輸入w,表示保存分區信息。警告:一旦進行了保存操作,將無法撤消,請確保您以上的操作無問題,否則,請輸入q,不保存分區表,並退出
The partition table has been altered!

Calling ioctl() to re-read partition table.
Syncing disks.