公司现在虚拟机都是采用KVM虚拟机,由于业务需要,需要安装一台svn服务器,好吧,以前已经装过好多linux的虚拟机,现在就没有那么麻烦了,找到以前安装的干净的镜像(没有安装各种应用,只做好基本配置的镜像),cp一下并重命名,在KVM界面new一个新的,选择本地镜像安装很快就完成了。安装完成。
首先要注意的是mac地址变了,需要更改下mac地址,先记下新虚拟机网卡的MAC地址,然后cd /etc/udev/rules.d/ ,vi 70-persistent-net.rules,看看符合新MAC地址的那行,应该是 eth1 了, 删除掉 eth0 (也就是原来的网卡)那行, 把 eth1 改成 eth0 ,或者是把以前的注释掉,然后vi /etc/sysconfig/network-scripts/ifcfg-eth0,修改 MAC地址为新的,修改 相应的 IP地址,重新启动,应该就可以认出新的网卡。
因为使用的镜像磁盘空间比较小,我使用的默认的8G,这肯定不够,所以加一块磁盘吧,在kvm新建一块磁盘,重启机器,好了,现在新磁盘已经加好了,当初镜像使用了LVM,现在只需要把新加的磁盘加入LVM卷组就ok了。
假设添加了一块硬盘 为 /dev/vdb , 那么
1、首先使用 fdisk /dev/vdb , 然后添加分区 /dev/vdb1 (分区这里就不做记录了)
2、添加完分区之后,使用pvcreate , 将 /dev/vdb1 创建为 物理卷
pvcreate /dev/vdb1
3、使用vgextend , 将 /dev/vdb1 添加到卷组
vgextend vg /dev/vdb1
4、使用ls /dev/mapper/ -l查看lvm的情况,现在添加到逻辑卷,我需要将剩下的所有剩余资源全部添加到 lv_root 卷
lvextend -l+100%FREE /dev/vg/lv_root
5、使用 resize2fs 动态调整 lv_root 大小
resize2fs -p /dev/vg/lv_root
在安装的时候碰到一个问题,当时创建新磁盘的时候我只建了40G,后来领导觉得小,我又删掉重新添加了一个80G的,就是这一步导致后边出了一些错误,费了好半天的力气啊 ,呵呵
安装40G的时候,已经到了创建完物理卷,添加到卷组了,领导一句话,我又把它删掉了,从新添加,当添加80G的磁盘的时候,开始都很顺利,但是到添加到卷组的时候就开始报错
[root@svn ~]# vgextend vg /dev/vdb1
Couldn't find device with uuid
0byR3l-EutA-Pqyh-AxaP-IN1k-KMz5-af6MTI.
Cannot change VG vg while PVs are missing.
Consider vgreduce --removemissing.
这个错误百思不得其解,后来想想可能跟以前我删掉的那个硬盘有关。查看下物理卷信息
[root@svn ~]# pvscan
Couldn't find device with uuid
0byR3l-EutA-Pqyh-AxaP-IN1k-KMz5-af6MTI.
PV /dev/vda2 VG
vg lvm2 [7.51 GiB / 0 free]
PV unknown device VG vg lvm2 [40.00
GiB / 40.00 GiB free]
Total: 2 [47.50 GiB] / in use: 2 [47.50 GiB] / in no VG: 0
[0 ]
果然,这里有个莫名的unknown device ,应该就是我刚才删掉的那个硬盘,我把他加到卷组里,但是没有从卷组里卸载,就直接把硬盘删掉了。
[root@svn ~]# vgdisplay
Couldn't find device with uuid
0byR3l-EutA-Pqyh-AxaP-IN1k-KMz5-af6MTI.
--- Volume group ---
VG
Name
vg
System
ID
Format
lvm2
Metadata Areas
1
Metadata Sequence No 4
VG
Access
read/write
VG
Status
resizable
MAX
LV
0
Cur
LV
2
Open
LV
2
Max
PV
0
Cur
PV
2
Act
PV
1
VG
Size
47.50 GiB
PE
Size
4.00 MiB
Total
PE
12161
Alloc PE / Size 1922 /
7.51 GiB
Free PE / Size
10239 / 40.00 GiB
VG
UUID
mT5gCe-ihz3-CfTi-1IH2-deTA-EFTD-l1eiKD
查看卷组信息,果然已经添加上了,没有被卸载。根据上面的错误提示,有这么一条Consider vgreduce --removemissing.
vgreduce ?removemissing vg 卸载掉未知或者已丢失的vg
现在再
[root@svn ~]# vgextend vg /dev/vdb1就没问题了。然后按着上边的步骤一步一步来就可以了
[root@svn ~]# resize2fs -p /dev/vg/lv_root
resize2fs 1.41.12 (17-May-2010)
Filesystem at /dev/vg/lv_root is mounted on /; on-line resizing
required
old desc_blocks = 1, new_desc_blocks = 6
Performing an on-line resize of /dev/vg/lv_root to 22676480 (4k)
blocks.
这里要等一会哦,80G呢,呵呵
The filesystem on /dev/vg/lv_root is now 22676480 blocks long.
[root@svn ~]# df -h
Filesystem
Size Used Avail Use% Mounted on
/dev/mapper/vg-lv_root
86G 908M 80G 2% /
tmpfs
499M 0 499M 0%
/dev/shm
/dev/vda1
485M 51M 409M 12% /boot
OK,任务完成了哦。呵呵 ~~
命令说明:
pvcreate (创建物理卷)
pvdisplay (显示物理卷信息)
pvscan (扫描物理卷)
pvremove (删除物理卷)
vgcreate (创建卷组)
vgdisplay (显示卷组信息)
vgscan (扫描卷组)
vgextend (扩展卷组)
vgextend vg1 /dev/sdb7 (把物理卷/dev/sdb7 加到vg1卷组中)
vgreduce (删除卷组中的物理卷)
vgreduce vg1 /dev/sdb7 (把物理卷/dev/sdb7 从卷组vg1中删除)
vgremove (删除卷组)
vgremove vg1 (删除卷组vg1)
lvcreate (创建逻辑卷)
lvdisplay (显示逻辑卷信息)
lvscan (扫描逻辑卷)
lvextend (扩展逻辑卷)
lvextend -l +5G /dev/vg1/lvm1 (扩展逻辑卷/dev/vg1/lvm1 5个G)
lvreduce -L-50M /dev/vg1/lvm1,调整lvm1分区大小,减小50M
lvremove (删除逻辑卷)