热门标签 | HotTags
当前位置:  开发笔记 > 运维 > 正文

为KVM虚拟机中CentOS6.2系统增加LVM硬盘空间

公司现在虚拟机都是采用KVM虚拟机,由于业务需要,需要安装一台svn服务器,好吧,以前已经装过好多linux的虚拟机,现在就没有那么麻烦了,找到以前安装的干净的镜像(没有安装各种应用,只做好基本配置的镜像),cp一下并重命名,在KVM界面new一个新的,选择

公司现在虚拟机都是采用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 (减少LV大小) 


lvreduce -L-50M /dev/vg1/lvm1,调整lvm1分区大小,减小50M
lvremove (删除逻辑卷)


推荐阅读
  • Windows环境下详细教程:如何搭建Git服务
    Windows环境下详细教程:如何搭建Git服务 ... [详细]
  • 本文探讨了服务器系统架构的性能评估方法,包括性能评估的目的、步骤以及如何选择合适的度量标准。文章还介绍了几种常用的基准测试程序及其应用,并详细说明了Web服务器性能评估的关键指标与测试方法。 ... [详细]
  • WebBenchmark:强大的Web API性能测试工具
    本文介绍了一款名为WebBenchmark的Web API性能测试工具,该工具不仅支持HTTP和HTTPS服务的测试,还提供了丰富的功能来帮助开发者进行高效的性能评估。 ... [详细]
  • 本文回顾了作者在求职阿里和腾讯实习生过程中,从最初的迷茫到最后成功获得Offer的心路历程。文中不仅分享了个人的面试经历,还提供了宝贵的面试准备建议和技巧。 ... [详细]
  • 随着Linux操作系统的广泛使用,确保用户账户及系统安全变得尤为重要。用户密码的复杂性直接关系到系统的整体安全性。本文将详细介绍如何在CentOS服务器上自定义密码规则,以增强系统的安全性。 ... [详细]
  • Node.js在服务器上的多种部署策略
    本文探讨了Node.js应用程序在服务器上部署的几种有效方法,包括使用Screen、PM2以及通过宝塔面板进行简易管理。 ... [详细]
  • 对于初学者而言,搭建一个高效稳定的 Python 开发环境是入门的关键一步。本文将详细介绍如何利用 Anaconda 和 Jupyter Notebook 来构建一个既易于管理又功能强大的开发环境。 ... [详细]
  • 本文详细介绍了如何在Oracle VM VirtualBox中实现主机与虚拟机之间的数据交换,包括安装Guest Additions增强功能,以及如何利用这些功能进行文件传输、屏幕调整等操作。 ... [详细]
  • 软件测试行业深度解析:迈向高薪的必经之路
    本文深入探讨了软件测试行业的发展现状及未来趋势,旨在帮助有志于在该领域取得高薪的技术人员明确职业方向和发展路径。 ... [详细]
  • 本文深入探讨了 Git 与 SVN 的高效使用技巧,旨在帮助开发者轻松应对版本控制中的各种挑战。通过详细解析两种工具的核心功能与最佳实践,读者将能够更好地掌握版本管理的精髓,提高开发效率。 ... [详细]
  • AppFog 是一个基于 CloudFoundry 的多语言 PaaS(平台即服务)提供商,允许用户在其平台上轻松构建和部署 Web 应用程序。本文将通过详细的图文步骤,指导读者如何在 AppFog 免费云平台上成功部署 WordPress,帮助用户快速搭建个人博客或网站。 ... [详细]
  • 分布式开源任务调度框架 TBSchedule 深度解析与应用实践
    本文深入解析了分布式开源任务调度框架 TBSchedule 的核心原理与应用场景,并通过实际案例详细介绍了其部署与使用方法。首先,从源码下载开始,详细阐述了 TBSchedule 的安装步骤和配置要点。接着,探讨了该框架在大规模分布式环境中的性能优化策略,以及如何通过灵活的任务调度机制提升系统效率。最后,结合具体实例,展示了 TBSchedule 在实际项目中的应用效果,为开发者提供了宝贵的实践经验。 ... [详细]
  • 最近,我在CentOS 5服务器上成功部署了GForge 5.7 Community Edition。与Advanced Server版本相比,虽然功能略有简化,但仍然能够满足大多数开源项目管理的需求。为了确保数据安全,我开发了一套全自动备份脚本,该脚本能够定期备份GForge的数据和配置文件,并将其存储在远程服务器上,以防止数据丢失。此外,该脚本还具备错误检测和日志记录功能,便于故障排查和维护。 ... [详细]
  • 在Mac操作系统中,.svn文件夹作为隐藏文件,逐个手动删除相当繁琐。为了提高效率,可以通过简单的Linux命令实现批量删除。具体操作为:打开终端,切换至目标项目目录(此步骤至关重要),然后执行相应命令以彻底清除所有.svn文件夹。此外,建议在执行前备份重要数据,以防误删。 ... [详细]
  • 如何配置VisualSVN以确保提交时必须填写日志信息
    在软件开发团队中,成员们有时会忘记在提交代码时添加必要的备注信息。为了规范这一流程,可以通过配置VisualSVN来强制要求团队成员在提交文件时填写日志信息。本文将详细介绍如何设置这一功能。 ... [详细]
author-avatar
兴哥
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有