【24小时创业】2022年8月18日
06-17
0x00 前言 背景 云服务器硬盘满了怎么办?不用担心,在腾讯云的服务器上,添加硬盘或扩展现有硬盘的大小非常简单。本文将讲解如何在腾讯云服务器(CentOS系统)下挂载新创建的云盘,以及如何实现云盘的在线扩容。
0x01 增加硬盘数量是通过添加新硬盘来扩展存储的常见方式:通常需要创建/挂载云盘、创建分区表、格式化分区、挂载新分区,共4步。我们依次介绍一下。
1.挂载云盘 云盘(CBS,Cloud Block Storage)可以简单理解为:插在云服务器(CVM实例)上的硬盘。它在概念理解和操作上与一般硬盘(块设备存储)几乎相同。
它还支持插拔(挂载/卸载)、分区创建和管理、格式化等。不过,这种面向云服务的块存储设备无非是硬盘类型选择更丰富、扩展更方便、灵活计费模型、快照备份和恢复、详细的实时使用监控以及日益降低的成本。
成本。最重要的是,由于多副本存储,无需担心底层硬件的故障。
凭借九个九的可靠性,即使您愿意,数据也不会丢失。唉,云计算就是这么稳定又无聊。
云块存储(CBS)是一种高可用、高可靠、低成本、可定制的块存储设备,可以作为云服务器的独立可扩展硬盘,为云服务器实例提供高效可靠的存储设备。 。
云盘提供数据块级别的持久化存储,通常作为需要频繁、细粒度更新的数据(如文件系统、数据库等)的主要存储设备。它们具有高可用性、高可靠性、高性能的特点。
云硬盘采用三副本分布式机制,将您的数据备份在不同的物理机上,避免单点故障导致的数据丢失等问题,提高数据可靠性。等不及的朋友可以看一个视频来热身:在腾讯云服务器上挂载云硬盘。
当然,硬盘的价值需要通过服务器来实现,存储的数据需要被读取才更有意义。在开始本文的实验之前,您必须先准备一个 CVM 实例。
接下来,我们开始创建第一个云盘。创建新云盘 在云服务器的云盘选项卡下,我们可以轻松创建新云盘: 如上图所示,创建云盘实例,主要需要选择可用区、类型等参数、容量和计费模??式。
这里需要注意一个限制。 CBS云盘只能挂载在同一可用区的CVM云服务器上,甚至同一VPC下。
也就是说,我们不能把硬盘带出机房。至于高性能云盘还是SSD云盘,您可以根据您的业务类型进行选择。
你可以参考这里。 SSD云盘的性能(IOPS、吞吐量等)是高性能云盘的数倍。
当然,价格也相对较高。容量方面,虽然这里写的是GB,但实际上是GiB(1GiB约等于1.07GB)。
这是行业标准,别担心,我们输不起。至于付费类型,通常建议选择包年或包月,因为数据存储周期比较长,相对划算。
挂载的云盘创建完成后,我们会在云盘列表页面看到云盘实例信息。通过最右侧的操作->更多->挂载,您可以选择需要挂载的云服务器。
选择要挂载的目标服务器,下一步->开始挂载,就完成了。云盘的创建和挂载基本上都是秒级的,体验非常好。
在 CVM 实例的详情页(基本信息)中,还可以找到新的云盘已挂载为数据盘的信息,如图: 可以看到,通过控制台,我们可以挂载云了任何位于自己可用区的云服务器的磁盘都会被卸载甚至销毁。相信您也已经意识到,云盘的生命周期与其挂载的云服务器无关。
确实,存储和计算应该分开。 2. 创建分区表。
对于新挂载的硬盘,首先要做的就是创建分区表并规划分区大小。这里推荐使用parted工具来完成。
您可能听说过或使用过fdisk工具,但parted比fdisk更强大,适用于更多场景,并且在当前主流Linux发行版中默认安装。对于已经熟悉fdisk的开发人员来说,使用parted会更容易上手。
直观感受一下:在控制台挂载云盘后,服务器上就会出现对应的/dev/vdX(X是b/c/d...对应不同的云盘)设备文件。使用parted工具创建分区表。
(分区表)和硬盘分区(磁盘分区)。代码语言:javascript copy pated /dev/vdb # 进入parted工具?#创建GPT分区表(parted) mklabel gpt#创建名为`primary`的ext4分区,范围为整个硬盘(parted) mkpart Primary ext4 0% %us 您可以通过 print 子命令验证分区创建情况。
退出后可以看到出现了硬盘设备的分区文件/dev/vdb1。完全的。
注意,此时只创建了分区,文件系统还没有格式化。尚未找到设备的 UUID。
这里,我们总结一下parted工具的常用子命令: print(或p):显示当前分区表信息。 mklabel(或mktable):创建分区表。
参数为分区表类型,可以选择gpt(GPT分区表,推荐)或者msdos(MBR分区表,需要兼容性时可以使用)等。 mkpart:创建分区。
参数包括分区的名称。对于 gpt 分区,您可以采用任何名称。
单个分区通常被称为主分区,但这并不重要。可选的文件系统类型,如ext4等,注意这只是为了标识;分区的起点和终点,单位可以是百分比(%),比较推荐。
当然也可以使用s/GB/GiB等。 resizepart:调整分区大小。
通常用于扩展,参数是分区号和要调整大小的终点,可以是百分比,也可以是具体值。这个命令也可以用来收缩,因为这个操作会让数据不可读,parted也会有专门的提示。
单位:设置单位显示。默认值为 GB。
您可以根据自己的习惯选择GiB(df、fdisk、云盘存储等工具使用的单位)或s(sector扇区)。 quit(或Ctrl+D):退出已分开的程序。
如果分区表有写入更新,parted会提示/etc/fstab文件需要更新。在parted工具诞生之前,硬盘分区主要是通过fdisk工具来完成的。
但后者对于大于2T的硬盘就无能为力了,这是一个缺陷。初学者只需要掌握parted即可。
本质上,这是因为parted更好地支持GPT(GUID分区表)——硬盘分区表布局的当前标准。在GPT之前,MBR(主引导记录)分区是最常用的,但由于其可扩展性有限(例如分区数量),现在很少使用。
3. 格式化分区。格式化分区很简单,使用mkfs即可。
代码语言:javascript 复制 mkfs.ext4 /dev/vdb1 注意,此时我们可以找到硬盘设备的UUID。稍后编辑 /etc/fstab 文件时需要该值。
4、挂载新分区后,为什么又出现“挂载”?这里需要说明的是,这里的挂载与第一节中的云硬盘挂载不同。云硬盘挂载(attach)是指将云硬盘连接到CVM云服务器;而本节中的挂载(mount)是操作系统中的一个概念,就是将格式化后的文件系统(这里就是刚才的云盘分区)挂到某个文件系统目录下。
当然我们可以通过mount命令挂载,如下: 代码语言:javascript copy [root@VM-2-3-centos ~]# mount /dev/vdb1 /data/disk1[root@VM-2-3-centos ~] # df -h 使用的文件系统大小 Avail Use% Mounted ondevtmpfs 3.8G 0 3.8G 0% /devtmpfs 3.9G 24K 3.9G 1% /dev/shmtmpfs 3.9G K 3.9G 1% /runtmpfs 3.9G 0 3.9G 0% /sys /fs /cgroup/dev/vda1 50G 2.6G 45G 6% /tmpfs M 0 M 0% /run/user/0/dev/vdb1 98G 61M 93G 1% /data/disk1 但是,当通过mount 命令是临时命令,服务器重启后将失效。如果需要开机自动挂载文件系统,则需要编辑/etc/fstab文件,类似: 代码语言:javascript Copy #现有内容,如系统盘挂载点设置 UUID=e6f89-71fa-d-e -ccdf2c06e0fe / ext4 defaults 1 1#新增内容,云盘挂载 UUID=54c2e89e-1a32-4beb-f-6bb1faa0bdb0 /data/disk-1 ext4 defaults 0 2fstab文件介绍 /etc/fstab文件包含可以挂载的文件system 系统描述信息。
该文件只会被程序读取而不必担心被覆盖。系统管理员有责任正确创建该文件。
内容的顺序非常重要,因为 fsck、mount(系统启动期间)和 umount(系统关闭期间)等程序将按 fstab 中的顺序运行。fstab 中每行 6 个字段的说明: fs_spec:要挂载的块设备或远程文件系统描述符,如 UUID=
可以通过blkid命令查询设备的uuid。也可以直接使用设备名称(如:/dev/vdb1类似形式),但由于这个名称与硬盘检测顺序有关,并且在添加或移除硬盘时会发生变化,因此非常不灵活,现在不推荐。
fs_file:文件系统的挂载点,即指定的挂载目录。 fs_vfstype:文件系统类型,主流的如ext4、btrfs、xfs、ntfs等。
fs_mntop:挂载选项,一般选择默认。 (相当于rw、suid、dev、exec、auto、nouser、async),常见选项有noauto(不自动挂载)、user(普通用户挂载)等。
fs_freq:如果需要dump,则系统写1磁盘,0 为数据盘。 fs_passno:按照fsck的顺序,系统盘写1,数据盘写2或0。
那么,如果一不小心,fstab文件写错了,会出现什么情况呢?最坏的情况是服务器无法重新启动。但不要紧张。
在控制台通过VNC登录,输入root密码进入紧急恢复模式,修改文件并重启。 0x02 增加硬盘容量的另一种方法是增加挂载硬盘的容量。
完全没问题,只需3步:硬盘扩展、分区表更新、文件系统更新。 1. 云盘扩容仍可进入云盘实例列表页面。
进入最右边的操作->更多->扩容,选择扩容大小,然后一键秒扩容。非常方便。
云盘扩容成功。服务器内部不会有任何直接的变化。
让我们继续下一步。2、更新分区表并输入parted后,会出现如下提示,告知我们空间过剩,建议修改: 代码语言:javascript 复制警告:Not all of the space available to /dev/vdb出现要使用,您能否修复 GPT 以使用所有空间(额外的 0 块)或继续当前设置? (如果过程中提示修复,就选择Fix即可。
)然后使用resizepart子命令(或者删除并重建)(可以)更新分区表信息: 我们就完成了硬盘分区表的更新。 3、扩容文件系统最后我们在线扩容文件系统。
什么是线上拓展?意思是不需要卸载(umount)文件系统,直接挂载文件系统。现代Linux可以在线扩展ext4文件系统(on-line resize),这是通过resize2fs命令完成的: 代码语言:javascript copy resize2fs /dev/vdb1 对于ext4文件系统的扩展,执行需要几秒钟的时间,而输出大致如下: 至此我们已经完成了云盘的扩容,大功告成! 0x04 总结与对比 至此,我们已经完成了云盘的创建和挂载,并完成了现有云盘的扩容。
你都学会了吗?这两种增加存储的方法各有特点,您往往需要根据具体需求,在不同场景下选择适合自己的方法。另外,腾讯云CBS(云硬盘)产品其实还有很多好玩又好用的功能,比如快照回滚恢复、实时使用情况监控等,别让你的硬盘闲置了,快来体验这些功能吧!欢迎订阅专栏:五山脚步,关注本文作者:西歪歪,持续获取云服务技术最佳实践讲解。
版权声明:本文内容由互联网用户自发贡献,本站不拥有所有权,不承担相关法律责任。如果发现本站有涉嫌抄袭的内容,欢迎发送邮件 举报,并提供相关证据,一经查实,本站将立刻删除涉嫌侵权内容。
标签:
相关文章
06-17
06-17
06-17
06-18
06-18
06-06
06-18
06-18
最新文章
【玩转GPU】ControlNet初学者生存指南
【实战】获取小程序中用户的城市信息(附源码)
包雪雪简单介绍Vue.js:开学
Go进阶:使用Gin框架简单实现服务端渲染
线程池介绍及实际案例分享
JMeter 注释 18 - JMeter 常用配置组件介绍
基于Sentry的大数据权限解决方案
【云+社区年度征文集】GPE监控介绍及使用