为什么需要自动挂载数据盘?
新购买的ECS实例或新增的数据盘,默认不会自动挂载到系统目录,如果未配置自动挂载,重启实例后可能出现应用无法访问数据、服务异常等问题,通过以下方法可实现开机自动挂载,确保数据持久化存储。
lsblk
找到目标数据盘(如/dev/vdb1
)及其文件系统类型(如ext4)。
创建挂载目录
mkdir /mnt/data
获取磁盘UUID
blkid /dev/vdb1
记录输出结果中的UUID(UUID="d77a1a3e-5e1a-4f5d-9b0a-1c7b8e6d9f0c"
)。
编辑/etc/fstab文件
vi /etc/fstab
追加以下内容(替换实际UUID和文件系统类型):
UUID=d77a1a3e-5e1a-4f5d-9b0a-1c7b8e6d9f0c /mnt/data ext4 defaults,nofail,noatime,nobarrier 0 0
nofail
:防止因磁盘问题导致系统无法启动noatime
:减少磁盘写入,提升性能nobarrier
:针对特定文件系统优化性能
验证挂载
mount -a
无报错则说明配置成功。
通过脚本+systemd实现高级控制(推荐生产环境使用)
-
创建挂载脚本
vi /usr/local/bin/mount_data_disk.sh
写入以下内容:
#!/bin/bash DISK="/dev/vdb1" MOUNT_POINT="/mnt/data" if [ -b "$DISK" ]; then mount -o defaults,nofail,noatime,nobarrier $DISK $MOUNT_POINT fi
-
赋予脚本执行权限
chmod +x /usr/local/bin/mount_data_disk.sh
-
创建systemd服务单元
vi /etc/systemd/system/mount-data-disk.service
写入以下内容:
[Unit]
Description=Mount Data Disk
After=local-fs.target
[Service]
Type=oneshot
ExecStart=/usr/local/bin/mount_data_disk.sh
[Install]
WantedBy=multi-user.target -
启用服务
systemctl enable --now mount-data-disk.service
常见问题与注意事项
-
风险警告
- 修改
/etc/fstab
前务必备份原文件:cp /etc/fstab /etc/fstab.bak
- 错误的UUID或文件系统类型会导致系统启动失败
- 修改
-
数据盘未格式化?
首次使用需执行:mkfs -t ext4 /dev/vdb
-
挂载后权限问题
通过chmod
和chown
调整目录权限:chown -R www-data:www-data /mnt/data # 示例:赋予Web服务器用户权限
性能优化建议
- 使用SSD云盘时启用
discard
选项支持TRIM - 高并发场景建议关闭
atime
:添加noatime,nodiratime
- 数据库存储场景可考虑
data=ordered
或data=writeback
引用说明
本文操作步骤参考阿里云官方文档-挂载数据盘,并结合Linux系统管理最佳实践优化。