动态VHD如何扩容?

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了动态VHD如何扩容?相关的知识,希望对你有一定的参考价值。

你好 我完全做到了 你的帖子的所有效果 我C盘WIN7 我的D盘(卷标VHD)实际50G全用来玩VHD的 ,建立的是动态20G的VHD,我装好几个软件后WIN8母盘大9G,剩下11G, 子盘进去占20G,可用还是11G 这样的话我50G实际上能用的只有40G对吧 浪费10G,因为我进了子盘看(卷标VHD)这个盘变成20G可用。现在想将第一步的容量扩大到30G,又不想重新安装一次系统,并且能够不浪费10G空间,应该如何做呢

Wtg制作完成后重要的系统文件是隐藏的,所以看不到,想查看可以在控制面板的文件夹选项里设置系统文件可见。
Wtg的VHD文件是动太的大小,没有运行Wtg系统时,它的大小固定,运行Wtg它的大小是根据系统运行情况变化大小的,会比不运行时占用的U盘空间大几倍。
所以不要在这个32G的盘里面存太多的其它文件,否则运行Wtg时会空间不足。
参考技术A 在网上找到方法了 但把动态VHD变成了固定VHD空间了。Diskpart命令解决VHD虚拟磁盘空间不足的问题(VHD虚拟磁盘空间扩展)Diskpart命令是必须在win7以上的操作系统运行,开始-运行输入cmd。运行以下所有命令时必须关闭win7磁盘管理器。diskpart diskpart 命令sel vdisk file=d:windows7.vhd 选择要扩展的虚拟磁盘文件expand vdisk maximum=30000 扩展至30GB,此步后就可以在win7磁盘管理里面看到未分配空间。(下面的步骤应该就可以在磁盘管理器里面进行了)attach vdisk 附加虚拟磁盘。(注意附加后确定虚拟磁盘是否正确联机或分配盘符,如果未联机或没有分配盘符,在磁盘管理器里手工联机并添加盘符)list vol 列表卷 确定要把未分配的空间扩展到哪个卷sel vol 6 选择卷6(看你自己的卷列表,你要扩展空间的VHD磁盘是第几个卷就先择几)extend 扩展detach vdisk 分离磁盘exit 退出 查看原帖>>本回答被提问者采纳 参考技术B 建议重新做系统,

如何设计可以动态扩容缩容的分库分表方案?

  

  对于分库分表来说,主要是面对以下问题:

  • 选择一个数据库中间件,调研、学习、测试;
  • 设计你的分库分表的一个方案,你要分成多少个库,每个库分成多少个表,比如 3 个库,每个库 4 个表;
  • 基于选择好的数据库中间件,以及在测试环境建立好的分库分表的环境,然后测试一下能否正常进行分库分表的读写;
  • 完成单库单表到分库分表的迁移,双写方案;
  • 线上系统开始基于分库分表对外提供服务;
  • 扩容了,扩容成 6 个库,每个库需要 12 个表,你怎么来增加更多库和表呢?

  是你必须面对的一个事儿,就是你已经弄好分库分表方案了,然后一堆库和表都建好了,基于分库分表中间件的代码开发啥的都好了,测试都 ok 了,数据能均匀分布到各个库和各个表里去,而且接着你还通过双写的方案咔嚓一下上了系统,已经直接基于分库分表方案在搞了。

  那么现在问题来了,你现在这些库和表又支撑不住了,要继续扩容咋办?这个可能就是说你的每个库的容量又快满了,或者是你的表数据量又太大了,也可能是你每个库的写并发太高了,你得继续扩容。

  这都是玩儿分库分表线上必须经历的事儿。

  停机扩容(不推荐)

  这个方案就跟停机迁移一样,步骤几乎一致,唯一的一点就是那个导数的工具,是把现有库表的数据抽出来慢慢倒入到新的库和表里去。但是最好别这么玩儿,有点不太靠谱,因为既然分库分表就说明数据量实在是太大了,可能多达几亿条,甚至几十亿,你这么玩儿,可能会出问题。

  从单库单表迁移到分库分表的时候,数据量并不是很大,单表最大也就两三千万。那么你写个工具,多弄几台机器并行跑,1小时数据就导完了。这没有问题。

如果 3 个库 + 12 个表,跑了一段时间了,数据量都 1~2 亿了。光是导 2 亿数据,都要导个几个小时,6 点,刚刚导完数据,还要搞后续的修改配置,重启系统,测试验证,10 点才可以搞完。所以不能这么搞。

  优化后的方案

  一开始上来就是 32 个库,每个库 32 个表,那么总共是 1024 张表。

  我可以告诉各位同学,这个分法,第一,基本上国内的互联网肯定都是够用了,第二,无论是并发支撑还是数据量支撑都没问题。

每个库正常承载的写入并发量是 1000,那么 32 个库就可以承载32 * 1000 = 32000 的写并发,如果每个库承载 1500 的写并发,32 * 1500 = 48000 的写并发,接近 5 万每秒的写入并发,前面再加一个MQ,削峰,每秒写入 MQ 8 万条数据,每秒消费 5 万条数据。

  有些除非是国内排名非常靠前的这些公司,他们的最核心的系统的数据库,可能会出现几百台数据库的这么一个规模,128个库,256个库,512个库。

  1024 张表,假设每个表放 500 万数据,在 MySQL 里可以放 50 亿条数据。

  每秒 5 万的写并发,总共 50 亿条数据,对于国内大部分的互联网公司来说,其实一般来说都够了。

  谈分库分表的扩容,第一次分库分表,就一次性给他分个够,32 个库,1024 张表,可能对大部分的中小型互联网公司来说,已经可以支撑好几年了。

  一个实践是利用 32 * 32 来分库分表,即分为 32 个库,每个库里一个表分为 32 张表。一共就是 1024 张表。根据某个 id 先根据 32 取模路由到库,再根据 32 取模路由到库里的表。

orderIdid % 32 (库)id / 32 % 32 (表)
259 3 8
1189 5 5
352 0 11
4593 17 15

  刚开始的时候,这个库可能就是逻辑库,建在一个数据库上的,就是一个mysql服务器可能建了 n 个库,比如 32 个库。后面如果要拆分,就是不断在库和 mysql 服务器之间做迁移就可以了。然后系统配合改一下配置即可。

  比如说最多可以扩展到32个数据库服务器,每个数据库服务器是一个库。如果还是不够?最多可以扩展到 1024 个数据库服务器,每个数据库服务器上面一个库一个表。因为最多是1024个表。

  这么搞,是不用自己写代码做数据迁移的,都交给 dba 来搞好了,但是 dba 确实是需要做一些库表迁移的工作,但是总比你自己写代码,然后抽数据导数据来的效率高得多吧。

  哪怕是要减少库的数量,也很简单,其实说白了就是按倍数缩容就可以了,然后修改一下路由规则。

  这里对步骤做一个总结:

  1. 设定好几台数据库服务器,每台服务器上几个库,每个库多少个表,推荐是 32库 * 32表,对于大部分公司来说,可能几年都够了。
  2. 路由的规则,orderId 模 32 = 库,orderId / 32 模 32 = 表
  3. 扩容的时候,申请增加更多的数据库服务器,装好 mysql,呈倍数扩容,4 台服务器,扩到 8 台服务器,再到 16 台服务器。
  4. 由 dba 负责将原先数据库服务器的库,迁移到新的数据库服务器上去,库迁移是有一些便捷的工具的。
  5. 我们这边就是修改一下配置,调整迁移的库所在数据库服务器的地址。
  6. 重新发布系统,上线,原先的路由规则变都不用变,直接可以基于 n 倍的数据库服务器的资源,继续进行线上系统的提供服务。

以上是关于动态VHD如何扩容?的主要内容,如果未能解决你的问题,请参考以下文章

如何设计可以动态扩容缩容的分库分表方案?

如何设计可以动态扩容缩容的分库分表方案?

如何设计可以动态扩容缩容的分库分表方案

JavaP6大纲MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

JavaP6大纲MySQL篇:如何设计可以动态扩容缩容的分库分表方案?

如何设计可以动态扩容缩容的分库分表方案