运维编排场景系列---Linux数据盘扩展分区和文件系统
场景介绍
本文讲述如何利用OOS实现扩容linux数据盘后扩展其分区和文件系统。目前支持仅有一块数据盘,扩展已有MBR分区或扩容裸设备文件系统,具体流程请参考帮助文档扩展分区和文件系统_Linux数据盘。
本文具体场景:为一块已分区的数据盘通过OOS进行扩容,以及扩展对应的分区和文件系统。
前提条件:对应ECS实例只挂载了一块只有主分区的数据盘。
执行OOS模板扩容后:
操作流程
请先登陆运维编排控制台,如果未开通此服务请放心开通,运维编排是免费的。
创建模板
a.点击我的模板,创建模板
b.选择空白模板,点击选取
c.选取YAML栏,复制粘贴以下模板
FormatVersion: OOS-2019-06-01 Description: en: Resize disk and expand file system. zh-cn: 扩容数据盘(Linux)。 Parameters: instanceId: Description: en: The id of instance. zh-cn: 实例ID。 Type: String diskId: Description: en: The id of disk. zh-cn: 磁盘ID。 Type: String newSize: Description: en: The size of disk. zh-cn: 磁盘大小。 Type: Number MinValue: 20 MaxValue: 1999 action: Description: '' Type: String AllowedValues: - 扩展已有MBR分区 - 扩容裸设备文件系统 OOSAssumeRole: Description: The RAM role to be assumed by OOS. Type: String Default: OOSServiceRole RamRole: '{{ OOSAssumeRole }}' Tasks: - Name: startInstance Action: ACS::ECS::StartInstance Description: en: Starts the ECS instances. zh-cn: 启动实例。 Properties: instanceId: '{{ instanceId }}' - Name: checkInstanceOSType Action: ACS::CheckFor Description: en: Get ECS instance zone id. zh-cn: 获取实例的ZoneId。 Properties: Service: ECS API: DescribeInstances Parameters: InstanceIds: - '{{ instanceId }}' DesiredValues: - linux PropertySelector: Instances.Instance[].OSType - Name: createSnapshot Action: 'ACS::ECS::CreateSnapshot' Description: en: Create a snapshot for a cloud disk. zh-cn: 为一块云盘创建一份快照。 Properties: diskId: '{{ diskId }}' Outputs: snapshotId: Type: String ValueSelector: snapshotId - Name: resizeDisk Action: ACS::ECS::ResizeDisk OnError: deleteSnapshot Description: Resize disk. Properties: instanceId: '{{ instanceId }}' diskId: '{{ diskId }}' newSize: '{{ newSize }}' - Name: choseResizeType Action: ACS::Choice Description: Choose next task by CloudAssistant status. Properties: DefaultTask: ExpandExistedPartition Choices: - When: 'Fn::Equals': - '扩容裸设备文件系统' - '{{ action }}' NextTask: ExpandNewPartition - Name: ExpandExistedPartition Action: 'ACS::ECS::RunCommand' Description: en: Run cloud assistant command. zh-cn: 执行云助手命令。 OnSuccess: deleteSnapshot OnError: resetDisk Properties: commandContent: |- echo '#!/bin/bash' >> resizedisk.sh; echo 'umount /dev/vdb1' >> resizedisk.sh; echo 'echo "d' >> resizedisk.sh; echo 'w' >> resizedisk.sh; echo '" | fdisk -u /dev/vdb' >> resizedisk.sh; echo 'echo "n' >> resizedisk.sh; echo 'p' >> resizedisk.sh; echo 1 >> resizedisk.sh; echo -e '\n' >> resizedisk.sh; echo -e '\n' >> resizedisk.sh; echo 'w' >> resizedisk.sh; echo '" | fdisk -u /dev/vdb' >> resizedisk.sh; echo 'partx -u /dev/vdb' >> resizedisk.sh; echo 'sleep 10s' >> resizedisk.sh echo 'resize2fs /dev/vdb1' >> resizedisk.sh; echo 'mount /dev/vdb1 /mnt' >> resizedisk.sh; echo 'df -h' >> resizedisk.sh; /bin/bash resizedisk.sh instanceId: '{{ instanceId }}' commandType: RunShellScript Outputs: commandOutput: Type: String ValueSelector: invocationOutput - Name: ExpandNewPartition Action: 'ACS::ECS::RunCommand' Description: en: Run cloud assistant command. zh-cn: 执行云助手命令。 OnSuccess: deleteSnapshot OnError: resetDisk Properties: commandContent: |- resize2fs /dev/vdb df -h instanceId: '{{ instanceId }}' commandType: RunShellScript Outputs: commandOutput: Type: String ValueSelector: invocationOutput - Name: resetDisk Action: ACS::ECS::ResetDisk Description: en: Resets disk by snapshot. zh-cn: 回滚磁盘。 Properties: instanceId: '{{ instanceId }}' diskId: '{{ diskId }}' snapshotId: '{{ createSnapshot.snapshotId }}' - Name: deleteSnapshot Action: 'ACS::ExecuteAPI' Description: en: Delete the specified snapshot. zh-cn: 删除指定的快照。 Properties: Service: ECS API: DeleteSnapshot Parameters: SnapshotId: '{{ createSnapshot.snapshotId }}' Outputs: commandOutput: Type: List Value: 'Fn::If': - 'Fn::Equals': - '扩容裸设备文件系统' - '{{ action }}' - '{{ ExpandNewPartition.commandOutput }}' - '{{ ExpandExistedPartition.commandOutput }}'
d.输入模板名称,点击创建模板
执行模板
a.创建执行
b.设置参数
c.确认风险并执行
查看结果
系列文章
主题文章
最佳实践
玩转运维编排服务的权限:Assume Role+Pass Role
阿里云运维编排新功能:一键批量克隆ECS
批量在多台ECS内执行命令
场景系列
运维编排场景系列----更新ECS镜像
运维编排场景系列----给ECS实例自动打TAG
运维编排场景系列----从实例中拷贝文件到OSS
运维编排场景系列----给实例加到SLS机器组
运维编排场景系列----检测MFA功能状态
运维编排场景系列----每日统计多Region实例的运行状态
运维编排场景系列----如何使用jq
运维编排场景系列----分批到机器上运行命令
运维编排场景系列----更新镜像后自动更新伸缩配置镜像
运维编排场景系列----向Linux实例上传文件
运维编排场景系列----运行远端shell脚本
运维编排场景系列----在ECS实例上运行Ansible-playbook
运维编排场景系列----下载JVM堆栈到OSS
运维编排系列场景----将实例的固定公网IP转换为其它新EIP
运维编排场景系列----自动定时升级临时带宽
运维编排场景系列----批量更新云助手客户端
运维编排系列场景----批量释放实例
运维编排场景系列----ECS实例系统快照下载到本地
运维编排场景系列----批量更换系统盘
运维编排场景系列----基于镜像的日常发布
运维编排场景系列----自动创建多个区域同类型存储空间
运维编排场景系列----Autoscaling 通过LifecycleHook在实例启动时安装软件
低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
AutoLoadCache 7.0.7 发布
AutoLoadCache 是基于 AOP+Annotation 等技术实现的高效的缓存管理解决方案,实现缓存与业务逻辑的解耦,并增加异步刷新及“拿来主义机制”,以适应高并发环境下的使用。为了更好管理缓存增加了 Magic 模式。 此次更新主要解决了 Magic 模式下缓存穿透问题。 详情可见:https://gitee.com/qiujiayu/AutoLoadCache
- 下一篇
云存储网关——文件网关
背景 阿里云对象存储OSS能提供海量、安全、低成本、高可靠的云存储服务。使用RESTful API 可以在互联网任何位置存储和访问,容量和处理能力弹性扩展,多种存储类型供选择全面优化存储成本。由于阿里云OSS具备以上所说的优势,所有一直是有大容量存储需求的首要选择,但是最近再做一个项目的时候,遇到了一个问题:geoserver 无法使用oss以url的形式支持读取影像数据,只能用路径地址来调用。摸索了很久,然后发现阿里云有一款产品叫:云存储网关——云存储网关以阿里云OSS为后端存储,为企业应用提供行业标准的文件存储和块存储服务。 然后我通过OSS+云存储网关的组合方式,解决了geoserver 无法使用oss以url的形式读取数据的问题。以下是我整理出来的操作流程,其中会用到的产品有:ECS:https://www.aliyun.com/product/ecsOSS:https://www.aliyun.com/product/oss云存储网关:https://www.aliyun.com/product/hcs 准备工作 1、首先在oss创建一个Bucket:yiangg-hn,再创...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
-
Docker使用Oracle官方镜像安装(12C,18C,19C)
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- CentOS8编译安装MySQL8.0.19
- Docker快速安装Oracle11G,搭建oracle11g学习环境
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- MySQL8.0.19开启GTID主从同步CentOS8
- CentOS7,8上快速安装Gitea,搭建Git服务器
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果
推荐阅读
最新文章
- Springboot2将连接池hikari替换为druid,体验最强大的数据库连接池
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- CentOS6,CentOS7官方镜像安装Oracle11G
- SpringBoot2整合Redis,开启缓存,提高访问速度
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- SpringBoot2整合MyBatis,连接MySql数据库做增删改查操作
- Hadoop3单机部署,实现最简伪集群
- MySQL8.0.19开启GTID主从同步CentOS8
- SpringBoot2编写第一个Controller,响应你的http请求并返回结果