学习如何安全的从LVM中移除磁盘,当磁盘卷中有磁盘出现问题或是想把磁盘卷中的磁盘重新使用时就显得十分有用。本教程将重点关注以下问题:

  • 如何安全的从LVM中移除磁盘
  • 如何联机从VG中移除磁盘
  • 如何在物理层面进行磁盘数据拷贝
  • 如何联机替换LVM中的故障磁盘
  • 如何在物理层面将磁盘分区移动至另一磁盘
  • 如何释放磁盘以缩小VG容量
  • 如何安全的减少VG

首先, 我们需要了解一下服务器的情况。要了解服务器磁盘情况,可以使用lsblk命令,命令执行结果如下图所示:

可以看到,主机目前具有两个LVM,其中root是在安装系统时生成的,挂载到根目录;另一个Lv01是新添加的LVM,挂载到/mydata目录。另外,主机还安装了一块空白磁盘”sdc”,我们将要做的就是用”sdc”磁盘替换Lv01中的”sdb”磁盘,以达到安全移除LVM磁盘的目的。注意所有操作都是联机进行,并不会对系统产生任何影响。

要替换磁盘,那么很明显首先要把新磁盘”sdc”加入到vg01中。使用pvcreate命令可以将”/dev/sdc”生成一个新的pv,然后使用vgextend命令将”/dev/sdc”添加到vg01中。命令执行步骤如下图所示:

现在,我们将要移除的磁盘”/dev/sdb”和替换磁盘”/dev/sdc”都处于同vg01中,可以用pvs命令进行查看:

 

可以看到,”/dev/sdb”磁盘的一个分区”sdb1″加入到了vg01,现在需要做的就是将该分区移动到新安装磁盘”/dev/sdc”中。使用pvmove命令可以完成以上工作。

如图所示,”/dev/sdb1″的数据已经联机移动到了”/dev/sdc”,这样,就可以为移动磁盘做准备了。如果需要移动的数据较多,这条命令可能会执行很长时间,为了不影响其他操作,可以使用如下命令将其置于后台执行:

 pvmove /dev/sdb1 2>error.log >normal.log &

以上命令会将pvmove命令置于后台执行,并将执行的结果输出至”normal.log”,标准错误输出至”error.log”。

在移除原数据盘之前,还需要将该磁盘从其属于的VG中删除,这样才不会对系统产生影响。从vg01中删除从属磁盘,并不是使用”remove”命令,而是使用vgreduce命令,命令执行如下图所示:

现在,”/dev/sdb1″的分区已经从vg01中移除了,如果该磁盘的其他分区并没有被挂载,那么,这块磁盘就可以从系统中移除了。

以上就是我们使用pvmove命令完成移除LVM卷磁盘的全过程,这条命令可以方便的进行联机数据移动。当然,这条命令还提供了一些可选参数,”-v”参数可以输出更多的命令执行细节:

而”-i”参数可以让pvmove命令按”-i”后跟的秒数为间隔来显示命令的执行进度更新,命令示例如下:

# pvmove -i 1 /dev/sdc

转自:https://www.daehub.com/archives/8560.html

如何安全的从LVM中移除磁盘的更多相关文章

  1. Oracle Linux 6.4 LVM中误删VG之恢复过程

    一.项目背景描述 1.OSS现网测试数据库因大量小事物频繁提交运行非常缓慢.经分析为DS3950存储所在磁盘I/O存在瓶颈,大量等待事件,性能受限.另外,开发同事没有优化意识,没将小事物做成批量提交方 ...

  2. android studio 中移除module和恢复module

    一.移除Android Studio中module 在Android Studio中想要删除某个module时,在Android Studio中选中module,右键发现没有delete,如图: An ...

  3. 【python cookbook】【数据结构与算法】10.从序列中移除重复项且保持元素间顺序不变

    问题:从序列中移除重复的元素,但仍然保持剩下的元素顺序不变 解决方案: 1.如果序列中的值时可哈希(hashable)的,可以通过使用集合和生成器解决.

  4. 在Myeclipse中移除项目对Hibernate的支持

    在Myeclipse中移除项目对Hibernate的支持 在使用Hibernate框架进行开发时可能会遇到配置错误或者需要删除Hibernate支持的情况.下面就说一下如何彻底移除项目的Hiberna ...

  5. VMware Workstation与Hyper-V不兼容。请先从系统中移除Hyper-V角色,然后再运行VMware Workstation。

    VMware Workstation与Hyper-V不兼容.请先从系统中移除Hyper-V角色,然后再运行VMware Workstation. 今天在用win8.1的时候发现了这个问题,解决办法如下 ...

  6. 高效率遍历Map以及在循环过程中移除 remove指定key

    //高效率遍历Map以及在循环过程中移除 remove指定key //使用iter循环的时候 可以在循环中移除key,for在循环的过程中移除会报错哦 //本方法效率高 Iterator iter = ...

  7. Dynamics CRM 将实体从高级查找列表中移除不可见

    有时我们不需要将某个实体显示给一般用户比如配置实体,但是这种类型的实体有时候又需要给一般用户读权限ODATA的时候得能读,站点地图上的隐藏比较容易用工具配置下权限即可.其实做到这步一般就可以了但有的客 ...

  8. Git从库中移除已删除大文件

    写在前面大家一定遇到过在使用Git时,不小心将一个很大的文件添加到库中,即使删除,记录中还是保存了这个文件.以后不管是拷贝,还是push/pull都比较麻烦.今天在上传工程到github上,发现最大只 ...

  9. [翻译]LVM中逻辑卷的最大大小限制

    前言: 本文是对这篇博客Maximum Size Of A Logical Volume In LVM的翻译,敬请尊重原创和翻译劳动成果,那些随意转载的大爷们,好歹也自觉注明出处.谢谢! 英文原文地址 ...

随机推荐

  1. golang 管理 pidfile

    Pidfile 存储了进程的进程 id.一般情况下 pidfile 有以下几个作用: 其他进程可以读取 pidfile 获取运行进程的 pid(当然也可以通过其他命令 动态获取) 在启动进程前先检查 ...

  2. Go语言学习笔记(9)——接口类型

    接口 Go 语言提供了另外一种数据类型即接口,它把所有的具有共性的方法定义在一起,任何其他类型只要实现了这些方法就是实现了这个接口. /* 定义接口 */ type interface_name in ...

  3. RMAN备份脚本执行遇到RMAN-03002,06091问题处理

    一 问题描述 客户说RMAN备份脚本执行有的时候报错,有的时候正常!!! 远程登陆客户环境,查询最后一次备份的日志报错信息,得到 RMAN-03002: failure of delete comma ...

  4. Netty服务端创建流程及组件职责

    public class NettyServer { public static void main(String[] args) throws InterruptedException { NioE ...

  5. 扩展 MongoDB.Driver 支持实体

    针对MongoDB的官方C#驱动进行扩展 一.安装 Install-Package Apteryx.MongoDB.Driver.Extend 移步我的项目https://github.com/cod ...

  6. NodeList和HTMLCollection区别

    关于DOM集合接口,主要不同在于HTMLCollection是元素集合而NodeList是节点集合(既包括元素,也包括节点). 规定一下结果是: . node.childNodes 结果返回类型是 N ...

  7. iOS动画:CAKeyframeAnimation

    网络中Core Animation类的继承关系图       属性简介 @interface CAKeyframeAnimation : CAPropertyAnimation /* 提供关键帧数据的 ...

  8. Jlink调试S5PV210

    安装CDT C/C++ Development Toolkit,使eclipse可以开发C/C++项目 Help–>Install New Software中输入:http://download ...

  9. SHELL字符串处理技巧(${}、##、%%)

      在SHELL编程中,经常要处理一些字符串变量.比如,计算长度啊.截取子串啊.字符替换啊等等,常常要用到awk.expr.sed.tr等命令.下面给大家介绍个简单的字符串处理方法,用不着嵌套复杂的子 ...

  10. Flutter——TextField组件(文本框组件)

    TextField组件的常用属性: 属性 描述 maxLines 设置此参数可以把文本框改为多行文本框 onChanged 文本框改变的时候触发的事件 decoration hintText 类似 h ...