P2V之后的磁盘扩容新思路
背景:
原先的物理机环境多是若干块物理磁盘经过RAID卡进行了RAID5之后的虚拟磁盘组,这样我们在操作系统内看到的也就是一块完整的磁盘。我们会在上面进行分区,然后格式化后以便使用。
Figure 1这个时候的磁盘看起来一般会是这样的
这种磁盘结构使用了分区进行了存储结构的规划,但是在虚拟化环境中,这样的磁盘结构会给每个独立分区进行扩容带来各种不便,比如我们只能相对方便一些的对E盘进行扩充,而C盘和D盘的扩充就会变得非常麻烦。
思路变更:
有了上面诸多不便,在P2V之后的虚拟化环境中我们可以通过镜像卷方法快速将这些同一磁盘中的若干分区进行拆解。
操作步骤:
1、 需要确定需要拆解的分区个数,如上图就是两个(D盘分区和E盘分区)。
2、 接着在虚拟化平台中添加两块独立磁盘。
3、 分别对D盘和E盘进行镜像。
a)
Figure 2在Windows磁盘管理内选择D盘,右键选择添加镜像
b)
Figure 3选择需要镜像D盘的新磁盘,实例为磁盘1
c)
Figure 4使用这个功能需要开启动态磁盘功能,我们点击是进行人工确认
d)
Figure 5确认之后系统开始进行同步功能,该过程全自动,无需人工干预
e)
Figure 6同理,我们进行E盘的镜像,选择镜像磁盘,实例为磁盘2
f)
Figure 7镜像过程开始,可以看到D盘与E盘同时在进行镜像
g)
Figure 8由于这种同步过程使用的是对当前卷的全读,全写,因此会将未使用的空间也一并镜像到新的磁盘中,测试中可见E盘的空间很大耗时也多
h) 为了避免上述的问题发生,因为很多用户场景都是用的是精简置备,因此为了节省空间,我们需要对磁盘进行一下压缩后镜像
i.
Figure 9扩充磁盘之后新增加两个分区,重复上面的场景,分别标记成F盘和G盘,因为是新格式化的,实际消耗并不多
ii.
Figure 10对F盘进行压缩卷操作
iii.
Figure 11系统自动计算可压缩量,可以看到4GB空间可被压缩
iv.
Figure 12随后我们对新的F盘进行添加镜像操作
v. 操作步骤和上面场景一样,G盘也如此操作一下
vi.
Figure 13同步速度很快,同步容量为压缩后的大小
4、 确认镜像完毕之后,断开镜像的复制关系。
a) 这一步很关键,一定要选择中断镜像卷,切不可选择删除镜像!!!
b)
Figure 14对D盘进行断开镜像
c)
Figure 15手工确认告警信息
d) 如法炮制对其他卷也这般操作
e) 由于Windows对盘符的识别一向是先磁盘,再分区序号的,因此在这个场景下我们可以做到数据迁移的0停顿
f)
Figure 16满足预期的数据迁移,对需要扩充的卷此时可以扩充,原来的卷就可以移除了(可全部扩充给C盘)
5、 扩充期望扩充的卷
a)
Figure 17选择D盘进行扩展卷操作
b)
Figure 18启动扩展向导,因为我们此次的场景最小单位是单个磁盘而非多个磁盘,因此系统默认给的就是D盘现在所在的磁盘1
c)
Figure 19一路下一步之后100GB的空间已经被D盘全部使用
d) 其他期望扩充的盘符依次这般操作
6、 最终完成预期
a)
Figure 20完成预期的卷扩容
小结:
此次的扩容思路来自于微软磁盘管理的卷镜像技术,使用该技术的最小单位就是卷,而且该技术依赖动态磁盘。
这种思路对现有业务不会带来任何停顿影响,文件权限也保持完全一致。
数据无价,建议操作前对相应业务数据进行备份。或对当前虚拟主机克隆做副本。
同时关于动态磁盘和基本磁盘各有利弊,使用的时候请根据现有环境充分了解其不同之后再进行相关操作。
网上流行的动态磁盘转基本磁盘也是有工具的,大家有兴趣可以自己操作一下试试。
Figure 21上述场景可顺利转换成基本磁盘
-=EOB=-
P2V之后的磁盘扩容新思路的更多相关文章
- VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容
VMware下对虚拟机Ubuntu14系统所在分区sda1进行磁盘扩容 一般来说,在对虚拟机里的Ubuntu下的磁盘进行扩容时,都是添加新的分区,而并不是对其系统所在分区进行扩容,如在此链接中http ...
- SQL Server 磁盘空间告急(磁盘扩容)转载
一.背景 在线上系统中,如果我们发现存放数据库文件的磁盘空间不够,我们应该怎么办呢?新买一个硬盘挂载上去可以嘛?(linux下可以直接挂载硬盘进行扩容),但是我们的SQL Server是运行在Wind ...
- 【转载】CentOS LVM磁盘扩容
转自:http://blog.sina.com.cn/s/blog_8882a6260101cpfs.html EXSI5.1主机有一个linux虚拟机,系统是centos运行httpd服务,因为是多 ...
- centos6.5磁盘扩容
3台虚拟机都是20G磁盘,用着用着发现不够了,先扩容了一台,各种百度...各种坑,每个人的情况不一样,发现不一样的地方最后立即百度查看.一台扩容成功后,打算再扩容一台,目的是留一个记录.(我是用xsh ...
- ECS Linux服务器xfs磁盘扩容
ECS Linux服务器xfs磁盘扩 ECS Linux服务器xfs磁盘使用阿里云官方提供的磁盘扩容方法扩容会有报错: [root@iZ28u04wmy2Z ~]# e2fsck /dev/xvdb1 ...
- es 加磁盘扩容
elasticsearch多磁盘扩容 1.问题 由于早前elasticsearch集群数据存储路径只配置了一个,所以某天磁盘突然爆满,集群差点当机.需重新配置多路径存储路径,因为在生产环境,得保证 ...
- VMware 虚拟机快照、克隆、磁盘扩容
1. 快照 快照是虚拟机某个时间点上完整系统的镜像,可以在虚拟机内部通过快照文件恢复系统到之前的节点. 拍摄快照: 恢复快照: 2. 克隆 克隆是原始虚拟机全部状态的一个拷贝,是脱离原始虚拟机独立存在 ...
- 故障处理:磁盘扩容出错:e2fsck: Bad magic number in super-block while trying to open /dev/vdb1
按照阿里云官网教程对云服务器进行磁盘扩容,使用fdisk重新分区,最后使用e2fsck和resize2fs来完成文件系统层面的扩容 在执行“e2fsck -f /dev/vdb1”命令时报错,如果你的 ...
- Linux磁盘扩容
Linux磁盘扩容 fdisk -l # 查看硬盘信息 lvextend -L +1G /dev/mapper/vg00-lvroot 或者 lvextend -l +%FREE /dev/mappe ...
随机推荐
- Castle Core 4.0.0 alpha001发布
时隔一年多以后Castle 项目又开始活跃,最近刚发布了Castle Core 4.0.0 的alpha版本, https://github.com/castleproject/Core/releas ...
- Objective-C三种定时器CADisplayLink / NSTimer / GCD的使用
OC中的三种定时器:CADisplayLink.NSTimer.GCD 我们先来看看CADiskplayLink, 点进头文件里面看看, 用注释来说明下 @interface CADisplayLin ...
- Appium移动自动化框架
引言:Appium 是一个移动端自动化测试开源工具,可以针对不同的平台用一套API来编写测试用例.本文对Appium自动化测试框架的功能进行了概括. 本文选自<软件自动化测试开发>. Ap ...
- JavaScript String对象
本编主要介绍String 字符串对象. 目录 1. 介绍:阐述 String 对象的说明以及定义方式. 2. 实例属性:介绍 String 对象的实例属性: length. 3. 实例方法:介绍 St ...
- Beanstalkd一个高性能分布式内存队列系统
高性能离不开异步,异步离不开队列,内部是Producer-Consumer模型的原理. 设计中的核心概念: job:一个需要异步处理的任务,是beanstalkd中得基本单元,需要放在一个tube中: ...
- 一篇文章看懂TPCx-BB(大数据基准测试工具)源码
TPCx-BB是大数据基准测试工具,它通过模拟零售商的30个应用场景,执行30个查询来衡量基于Hadoop的大数据系统的包括硬件和软件的性能.其中一些场景还用到了机器学习算法(聚类.线性回归等).为了 ...
- DDD 领域驱动设计-谈谈 Repository、IUnitOfWork 和 IDbContext 的实践(3)
上一篇:<DDD 领域驱动设计-谈谈 Repository.IUnitOfWork 和 IDbContext 的实践(2)> 这篇文章主要是对 DDD.Sample 框架增加 Transa ...
- spring remoting源码分析--Hessian分析
1. Caucho 1.1 概况 spring-remoting代码的情况如下: 本节近分析caucho模块. 1.2 分类 其中以hession为例,Hessian远程服务调用过程: Hessian ...
- golang sync.WaitGroup bug
注意,这个结构体,要是想在函数之间传来传去的话,必须要使用指针....... 这个结构体里没有 指针,这个类型可以说没有“引用特性”. 被坑了一晚上.特此记录.
- APEX:对object中数据进行简单处理?
在Salesforce中,常常要对各种数据进行处理,已满足业务逻辑.本篇文章会介绍如何实现从object获取数据,然后将取得的数据进行一系列简单处理. 第一步:SongName__c 是一个新建的ob ...