如果你是在经典 VPS 这样的采用 WHMCS+VPS 管理平台架构的主机商那里,那么扩容硬盘就需要自己升级整个 VPS 主机套餐了。但是如果是在 Linode、阿里云以及腾讯云等这样的云主机商那里购买的 VPS 主机,那么当硬盘满了之后都是支持单独扩容硬盘。
硬盘挂载还有一个好处就是可以将数据存放在可挂载的硬盘,当你更换 VPS 主机时可以先从原 VPS 主机上卸载掉硬盘,然后重新在新的 VPS 主机上挂载,这样原来存放在硬盘中的数据依然在新的 VPS 主机保留下来了,这个特别有利于大存储网站的迁移。
这里我们就来分享一下 Linode、阿里云以及腾讯云 VPS 主机挂载硬盘的方法,由于在挂载硬盘之前一般要对硬盘进行格式化,所以建议在挂载硬盘之前一定对自己的网站做好备份工作,Linode、阿里云和腾讯云都是自带快照功能,在挂载硬盘前可以先建立一个快照。
一、阿里云 VPS 挂载磁盘扩容
1.1 挂载注意事项
阿里云VPS 单独购买的云盘想要挂载在 VPS 上需要注意以下两点:
1.云盘只能挂载到同一地域下同一可用区内的实例上,不能跨可用区挂载。
2.一台 ECS 实例最多能挂载 16 块云盘作数据盘用,同一时刻,一块云盘只能挂载到一个台实例上。
阿里云挂载磁盘时,云盘的状态必须为 待挂载(Available)。在左侧导航栏中,选择 存储 > 云盘。 选择地域。 找到 待挂载 云盘,在 操作 列中,选择 更多 > 挂载。
在弹出对话框中,完成以下设置:.
1.目标实例:只能选择同一可用区的 ECS 实例。
2.磁盘随实例释放:如果选中,当实例释放时,该云盘也会同时释放。
3.自动快照随磁盘释放:如果选中,当云盘释放时,该云盘创建的所有自动快照都会一起释放,但手动快照不会释放。建议您不要选择该选项,保留备份数据。
4.完成设置后,单击 执行挂载。
1.2 挂载具体步骤
在本示例中,我们用一个新的 20 G 数据盘(设备名为 /dev/xvdb)创建一个单分区数据盘并挂载一个 ext3 文件系统。使用的实例是 I/O 优化实例,操作系统为 CentOS 6.8。
远程连接实例。 运行 fdisk -l 命令查看实例是否有数据盘。如果执行命令后,没有发现 /dev/vdb,表示您的实例没有数据盘,无需格式化数据盘,请忽略本文后续内容。 如果您的数据盘显示的是 dev/xvd?,表示您使用的是非 I/O 优化实例。 其中 ? 是 a−z 的任一个字母。 创建一个单分区数据盘,依次执行以下命令: 运行 fdisk /dev/vdb:对数据盘进行分区。 输入 n 并按回车键:创建一个新分区。 输入 p 并按回车键:选择主分区。因为创建的是一个单分区数据盘,所以只需要创建主分区。 如果要创建 4 个以上的分区,您应该创建至少一个扩展分区,即选择 e。 输入分区编号并按回车键。因为这里仅创建一个分区,可以输入 1。 输入第一个可用的扇区编号:按回车键采用默认值 1。 输入最后一个扇区编号:因为这里仅创建一个分区,所以按回车键采用默认值。 输入 wq 并按回车键,开始分区。 [root@iXXXXXXX ~]# fdisk /dev/vdb Device contains neither a valid DOS partition table, nor Sun, SGI or OSF disklabel Building a new DOS disklabel with disk identifier 0x5f46a8a2. Changes will remain in memory only, until you decide to write them. After that, of course, the previous content won't be recoverable. Warning: invalid flag 0x0000 of partition table 4 will be corrected by w(rite) WARNING: DOS-compatible mode is deprecated. It's strongly recommended to switch off the mode (command 'c') and change display units to sectors (command 'u'). Command (m for help): n Command action e extended p primary partition (1-4) p Partition number (1-4): 1 First cylinder (1-41610, default 1): 1 Last cylinder, +cylinders or +size{K,M,G} (1-41610, default 41610): Using default value 41610 Command (m for help): wq The partition table has been altered! Calling ioctl() to re-read partition table. Syncing disks. 查看新的分区:运行命令 fdisk -l。如果出现以下信息,说明已经成功创建了新分区 /dev/vdb1。 [root@iXXXXXXX ~]# fdisk -l Disk /dev/vda: 42.9 GB, 42949672960 bytes 255 heads, 63 sectors/track, 5221 cylinders Units = cylinders of 16065 * 512 = 8225280 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x00053156 Device Boot Start End Blocks Id System /dev/vda1 * 1 5222 41942016 83 Linux Disk /dev/vdb: 21.5 GB, 21474836480 bytes 16 heads, 63 sectors/track, 41610 cylinders Units = cylinders of 1008 * 512 = 516096 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disk identifier: 0x5f46a8a2 Device Boot Start End Blocks Id System /dev/vdb1 1 41610 20971408+ 83 Linux 在新分区上创建一个文件系统:运行命令 mkfs.ext3 /dev/vdb1。 本示例要创建一个 ext3 文件系统。您也可以根据自己的需要,选择创建其他文件系统,例如,如果需要在 Linux、Windows 和 Mac 系统之间共享文件,您可以使用 mkfs.vfat 创建 VFAT 文件系统。 创建文件系统所需时间取决于数据盘大小。 [root@iXXXXXXX ~]# mkfs.ext3 /dev/vdb1 mke2fs 1.41.12 (17-May-2010) Filesystem label= OS type: Linux Block size=4096 (log=2) Fragment size=4096 (log=2) Stride=0 blocks, Stripe width=0 blocks 1310720 inodes, 5242852 blocks 262142 blocks (5.00%) reserved for the super user First data block=0 Maximum filesystem blocks=4294967296 160 block groups 32768 blocks per group, 32768 fragments per group 8192 inodes per group Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 4096000 Writing inode tables: done Creating journal (32768 blocks): done Writing superblocks and filesystem accounting information: done This filesystem will be automatically checked every 37 mounts or 180 days, whichever comes first. Use tune2fs -c or -i to override. (建议)备份 etc/fstab:运行命令 cp /etc/fstab /etc/fstab.bak。 向 /etc/fstab 写入新分区信息:运行命令 echo /dev/vdb1 /mnt ext3 defaults 0 0 >> /etc/fstab。 Ubuntu 12.04 不支持 barrier,所以对该系统正确的命令是:echo '/dev/vdb1 /mnt ext3 barrier=0 0 0' >> /etc/fstab。 如果需要把数据盘单独挂载到某个文件夹,比如单独用来存放网页,请将以上命令 /mnt 替换成所需的挂载点路径。 查看 /etc/fstab 中的新分区信息:运行命令 cat /etc/fstab。 [root@iXXXXXXX ~]# cat /etc/fstab # # /etc/fstab # Created by anaconda on Thu Feb 23 07:28:22 2017 # # Accessible filesystems, by reference, are maintained under '/dev/disk' # See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info # UUID=3d083579-f5d9-4df5-9347-8d27925805d4 / ext4 defaults 1 1 tmpfs /dev/shm tmpfs defaults 0 0 devpts /dev/pts devpts gid=5,mode=620 0 0 sysfs /sys sysfs defaults 0 0 proc /proc proc defaults 0 0 /dev/vdb1 /mnt ext3 defaults 0 0 挂载文件系统:运行命令 mount /dev/vdb1 /mnt。 查看目前磁盘空间和使用情况:运行命令 df -h。如果出现新建文件系统的信息,说明挂载成功,可以使用新的文件系统了。 挂载操作完成后,不需要重启实例即可开始使用新的文件系统。 [root@iXXXXXXX ~]# mount /dev/vdb1 /mnt [root@iXXXXXXX ~]# df -h Filesystem Size Used Avail Use% Mounted on /dev/vda1 40G 6.6G 31G 18% / tmpfs 499M 0 499M 0% /dev/shm /dev/vdb1 20G 173M 19G 1% /mnt
二、腾讯云 VPS 挂载磁盘扩容
1. 查看数据盘
关于腾讯云的 VPS 主机使用评测可以看看:腾讯云VPS 主机性能速度评测-价格便宜 10 元/月 1 核 2G 内存 VPS 主机。
登录Linux云服务器后,可以使用 fdisk -l 命令查看数据盘相关信息。
2. 数据盘分区
腾讯云挂载磁盘,首先是执行 fdisk /dev/vdb 命令,对数据盘进行分区。
按照界面的提示,依次输入“n”(新建分区)、“p”(新建扩展分区)、“1”(使用第 1 个主分区),两次回车(使用默认配置),输入“w”(保存分区表),开始分区。
注:这里是以创建 1 个分区为例,开发者也可以根据自己的需求创建多个分区。执行以下命令时,请注意修改数据盘符,可以使用”fdisk -l”查看盘符等相关信息,以下均以 vdb 为例,若是其他盘符,仅需将 vdb 替换为该盘符即可。如 fdisk /dev/vdb 替换为 fdisk /dev/xvdb。请确认路径为“/dev/vdb”,若错填为“/dev/vda”,将会造成云主机崩溃。
3. 查看新分区
使用 fdisk -l 命令,即可查看到,新的分区 vdb1 已经创建完成。
4. 格式化新分区
在进行分区格式化时,开发者可以自行决定文件系统的格式,如 ext2、ext3 等。本例以“ext3”为例,输入 mkfs.ext3 /dev/vdb1
5. 挂载新分区
使用 mkdir /mydata 命令创建 mydata 目录,再通过 mount /dev/vdb1 /mydata 命令手动挂载新分区,最后用 df -h 命令查看。出现如图信息则说明挂载成功,即可以查看到数据盘了。
6. 自动挂载数据盘
如果希望云服务器在重启或开机时能自动挂载数据盘,必须将分区信息添加到/etc/fstab 中。如果没有添加,则云服务器重启或开机后,都不能自动挂载数据盘。使用 echo ‘/dev/vdb1 /mydata ext3 defaults 0 0’ >> /etc/fstab 命令添加分区信息。使用 cat /etc/fstab 命令查看,出现如图信息则说明添加分区信息成功。
注:请确认分区路径是否为 “/dev/vdb1”,若路径错误,将会造成云主机重启失败。
三、总结
上面我们在对新硬盘进行格式化操作时用的是 ext3 文件系统,其实还有 ext4 文件系统。一般来说 ext3 足够我们使用的
无论是阿里云,腾讯云,在购买挂载硬盘前一定要记得备份原有的数据。尤其是 Linux 某些目录需要挂载硬盘扩容时,挂载硬盘后会清除掉原来目录中的数据,如果你是原有的网站数据都在这个目录下,请记得先将它们转移出来。