Loading [MathJax]/jax/output/CommonHTML/config.js
前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >专栏 >​云主机根分区自动扩容

​云主机根分区自动扩容

原创
作者头像
jiang
发布于 2020-06-27 06:39:01
发布于 2020-06-27 06:39:01
3.9K0
举报
文章被收录于专栏:yuncoderyuncoder

通常在制作云上使用的虚拟机时,如果不进行任何干预,安装出来的虚拟机默认是带有swap分区的,同时采用lvm来管理磁盘,通过这种方式制作出来的虚拟机镜像,直接在云上使用会有很多问题,其中一个就是根分区无法实现自动扩容,只能通过手工操作完成。而且在openstack中,swap分区通常是由一个单独的swap磁盘来提供,而不应该是做镜像的时候提供。

本文的目的是实现在Linux虚拟机(本文采用centos7.6)中自动完成根分区的扩容,而无需人工介入。

1. 启动方式与分区关系:

  • ARM架构的服务器上,虚拟机只能采用UEFI启动,因此对应的磁盘分区必须是GPT分区;
  • X86架构的服务器上,虚拟机通常还是BIOS启动的,因此对应的磁盘分区是MBR分区,当然X86架构上也是支持UEFI的启动方式的;

2. MBR分区与GPT分区:

  • MBR分区仅支持最大2T的磁盘,每个磁盘最多4个主分区或3个主分区加1个扩展分区;
  • GPT分区支持大于2T的磁盘,最大可支持18EB磁盘,每个磁盘最多128个分区;

3. EXT4文件系统与XFS文件系统:

  • EXT4最大文件系统大小为1EB,最大单个文件大小为16TB,最大包含64,000个子目录;
  • XFS最大文件系统大小为8EB,最大单个文件大小为16EB,centos7.0开始作为默认文件系统;

综合前面的分析,本文主要介绍GPT分区+XFS文件系统的根分区扩容,不采用LVM的方式进行磁盘管理。

制作虚拟机模板

安装CentOS操作系统时,选择手动分区,分区信息如下图所示,/boot/efi分区为UEFI启动必须的分区,大小200MB;另外一个分区为根分区,Device Type选择为Standard Partition,File System选择为xfs,系统盘分为几个分区不重要,重要的是必须确保根分区为磁盘的最后一个分区,另外不建议创建swap分区

centos-parted.png
centos-parted.png

系统安装完成后,启动虚拟机,执行命令可以看到如下的分区信息

代码语言:txt
AI代码解释
复制
[root@localhost ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End     Size    File system  Name                  Flags
1      1049kB  211MB   210MB   fat16        EFI System Partition  boot
2      211MB   21.5GB  21.3GB  xfs

[root@localhost ~]# lsblk
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0     11:0    1 1024M  0 rom  
vda    253:0    0   20G  0 disk 
├─vda2 253:2    0 19.8G  0 part /
└─vda1 253:1    0  200M  0 part /boot/efi

按照openstack社区文档 https://docs.openstack.org/image-guide/centos-image.html 对虚拟机进行配置,配置完成不要执行关机操作;

安装GPT分区工具,否则执行growpart命令时会提示“no tools available to resize disk with 'gpt'”:

代码语言:txt
AI代码解释
复制
[root@localhost ~]# yum install gdisk

修改默认语言为英语,否则执行growpart命令会报错

代码语言:txt
AI代码解释
复制
[root@localhost ~]# echo "export LANG=en_US.UTF-8" >> /etc/profile

安装其他需要的工具...

验证磁盘自动扩容

在前面创建的centos7.6虚拟机镜像中,虚拟机系统盘只有20GB。接下来在openstack环境中,利用该镜像创建一个拥有400GB系统盘的虚拟机。虚拟机创建并启动完成后,通过下面的命令可以看出,cloudinit自动完成了根分区的扩容:

代码语言:txt
AI代码解释
复制
[root@centos ~]# parted /dev/vda print
Model: Virtio Block Device (virtblk)
Disk /dev/vda: 429GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags:

Number  Start   End    Size   File system  Name                  Flags
 1      1049kB  211MB  210MB  fat16        EFI System Partition  boot
 2      211MB   429GB  429GB  xfs

[root@centos ~]# lsblk
NAME   MAJ:MIN RM   SIZE RO TYPE MOUNTPOINT
vda    253:0    0   400G  0 disk 
├─vda2 253:2    0 399.8G  0 part /
└─vda1 253:1    0   200M  0 part /boot/efi

cloudinit会根据根分区的挂载点来查找到实际的根分区磁盘,即上面的/dev/vda2,并对/dev/vda磁盘的第2个分区即/dev/vda2进行扩容。如果采用lvm来管理磁盘的话,查找到的根分区挂载点就是/dev/mapper/centos-root,这个分区是一个逻辑上的分区,因此cloudinit无法对其进行扩容。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
暂无评论
推荐阅读
编辑精选文章
换一批
区块链NFT系统的上线流程
区块链NFT系统的上线流程是一个系统性的工程,涵盖了从概念规划到发布运营的多个阶段。以下是一个详细的上线流程,其中包含了关键的步骤和注意事项。
数字孪生开发者
2025/06/10
800
区块链NFT系统的上线流程
195万NFT用户创造超170亿美元市场,你是其中一员吗?
今天你铸造 NFT 了吗?截至3月9日,全球持有 NFT 的用户已经上涨到195万人,创造了超170亿美元的市场。
本体Ontology
2022/03/29
2730
195万NFT用户创造超170亿美元市场,你是其中一员吗?
数字藏品(NFT)项目的上线流程
数字藏品(NFT)项目的上线流程是一个涉及多个环节的复杂过程,需要精心策划和执行。以下是一个详细的步骤指南,涵盖了从准备阶段到上线后的维护。
数字孪生开发者
2025/03/28
1350
数字藏品(NFT)项目的上线流程
音乐NFT项目的技术开发
音乐 NFT 项目的技术开发是一个涉及多个环节的复杂过程,需要结合区块链技术、数字内容管理、用户界面设计等多个领域的知识。以下是音乐 NFT 项目的技术开发流程和关键步骤。
数字孪生开发者
2025/04/09
1350
音乐NFT项目的技术开发
TME入局背后 音乐NFT的用户市场、应用价值与海外实践
今年3月,加密艺术家Beeple的NFT作品《Everydays:The First 5000 Days》在佳士得以6025万美元的拍卖价成交,让NFT概念被更多人看到。
用户7358413
2021/10/21
1K0
艺术品NFT系统的开发流程
艺术品NFT系统的开发是一个涵盖艺术创作、区块链技术、智能合约和市场运营的复杂过程。以下是一个详细的开发流程。
数字孪生开发者
2025/06/03
1200
艺术品NFT系统的开发流程
音乐NFT智能合约开发
音乐NFT的智能合约开发是音乐NFT项目的核心技术环节,它决定了NFT的铸造、交易、版权管理等功能是否能够安全、高效地运行。以下是音乐NFT智能合约开发的详细流程和关键要点。
数字孪生开发
2025/03/07
1050
音乐NFT智能合约开发
艺术品NFT的上线流程
艺术品NFT的上线流程不仅仅是技术上的部署,更是一个全面的市场推广和社区建设过程。一个成功的上线需要精心的策划和执行。以下是一个详细的艺术品NFT上线流程。
数字孪生开发者
2025/06/03
1120
艺术品NFT的上线流程
数字藏品(NFT)系统的上线运营
数字藏品(NFT)系统的上线运营是一个复杂的过程,涉及技术开发、市场策略、法律合规和社区建设等多个方面。
数字孪生开发者
2025/06/10
1670
数字藏品(NFT)系统的上线运营
元宇宙音乐,无界的狂欢party!
最近一段时间,“买菜难”成为上海最牵动人心的公共话题。但富有娱乐精神,善于苦中作乐的上海人,也在居家封控中制造各种“云娱乐”。
科技旋涡
2022/04/28
6030
元宇宙音乐,无界的狂欢party!
数字藏品NFT的开发框架
数字藏品NFT(非同质化代币)的开发框架涉及区块链技术、智能合约、存储解决方案、用户交互等多个方面。以下是一个完整的数字藏品NFT开发框架,涵盖从技术选型到部署上线的关键步骤。
数字孪生开发者
2025/01/26
2520
数字藏品NFT的开发框架
音乐NFT项目的技术架构
一个音乐 NFT 项目的技术架构通常包含多个关键组件,这些组件协同工作以实现音乐 NFT 的创建、交易、管理和可能的播放等功能。以下是一个典型的技术架构概览。
数字孪生开发者
2025/04/08
1330
音乐NFT项目的技术架构
嚯!终于知道什么是 NFT 了,还有它的运行机制!
NFT是一种令牌,我们可以用它来表示唯一物品的所有权。它们让我们把艺术品、收藏品、甚至房地产等东西当作令牌。它们一次只能有一个官方所有者,并且受到以太坊区块链的保护——没有人可以修改所有权记录或复制/粘贴一个新的NFT。
前端修罗场
2022/07/29
8650
接受比特币付款、在以太坊上发歌,当音乐遇上区块链
2017年,加密货币Monero(门罗币)曾宣布,有45名音乐人和5家在线商店在圣诞假期接受加密货币支付,并向那些使用加密货币支付的人提供折扣。
区块链大本营
2019/05/17
8000
NFT Oasis指南
多年来,所有权的概念不仅包括有形资产,还包括数字资产。然而,证明数字所有权和真实性有其挑战,许多允许您访问数字内容的网络平台根本不允许拥有和控制这些资产。这只是 NFT 世界的一部分。
公众号---人生代码
2021/08/26
5560
NFT Oasis指南
音乐NFT软件系统的上线流程
音乐NFT软件系统的上线流程涉及多个阶段,从需求分析到最终部署和推广,每个阶段都至关重要。以下是详细的上线流程。
数字孪生开发者
2025/03/14
470
音乐NFT软件系统的上线流程
音乐NFT开发中的主要技术难点
音乐NFT(非同质化代币)的开发涉及区块链技术、数字版权管理、音频处理、用户体验设计等多个领域,存在一些技术难点需要解决。以下是音乐NFT开发中的主要技术难点及其解决方案。
数字孪生开发者
2025/01/26
880
音乐NFT开发中的主要技术难点
音乐NFT系统的技术难点
音乐 NFT 系统,即将音乐作品或相关权益以 NFT(非同质化代币)的形式在区块链上进行发行、交易和管理的系统,其开发涉及多个技术和非技术层面的难点。以下我将详细阐述这些难点。
数字孪生开发
2024/12/23
1770
音乐NFT系统的技术难点
Web3赋能新商业模式
编者按:互联网行业的迅猛发展带动了音视频技术的进步,一些新鲜术语也随之进入音视频赛道。一股Web3热潮正席卷而来,相比元宇宙、NFT、虚拟人这些更为火热的概念,Web3到底是什么意思?从概念到落地,海外Web3音视频发展趋势如何?为此,我们很荣幸地邀请到了Reddio 创始人&CEO Neil HAN,分享了围绕Web3技术的最新进展、给音乐行业带来的变革及可能、元宇宙内的音视频、直播新玩法、Web3未来展望等五部分精彩内容,期待一起走进Web3时代。
LiveVideoStack
2023/01/10
5560
Web3赋能新商业模式
收藏品NFT的开发流程
通过以上流程,可以系统性地开发和发布收藏品NFT。根据项目的规模和需求,可以选择自行开发或与第三方开发团队合作完成。
数字孪生开发者
2024/12/09
1660
收藏品NFT的开发流程
相关推荐
区块链NFT系统的上线流程
更多 >
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档