走啊走
加油

为什么新买的云服务器只有一个系统盘,如何添加数据盘?

服务器价格表

新买的云服务器(如阿里云、腾讯云、华为云等)默认通常只挂载一块系统盘(用于安装操作系统和运行系统服务),这是出于成本、安全性和灵活性的考虑。系统盘一般为 SSD 或高效云盘,但容量有限(如 40GB–100GB),不适合存储大量业务数据(如数据库、日志、网站资源、备份等)。因此,添加独立的数据盘是常见且推荐的做法。

以下是添加数据盘的完整流程(以主流云平台通用逻辑为主,附关键注意事项):


✅ 一、在云控制台购买并挂载数据盘

  1. 登录云服务商控制台
    (如:阿里云 ECS 控制台 → 实例列表 → 找到目标实例)

  2. 创建并挂载云硬盘(数据盘)

    • 进入「云硬盘」或「块存储」服务页面
    • 点击「创建云硬盘」
      • 选择类型:SSD云盘(高性能)、ESSD云盘(推荐,支持更高IOPS)、容量(如 200GB/1TB)、计费方式(包年包月 or 按量付费)
      • 注意:必须选择与云服务器相同的地域(Region)和可用区(Zone)!
    • 创建成功后,在云硬盘列表中找到该磁盘 → 点击「挂载」→ 选择你的云服务器实例 → 确认挂载(通常挂载点可留空,由系统自动分配,如 /dev/vdb/dev/xvdb/dev/nvme1n1

🔍 提示:挂载后不会自动格式化或挂载到文件系统!需手动操作(见第二步)。


✅ 二、登录服务器,初始化数据盘(Linux 示例)

1️⃣ 查看新磁盘设备

lsblk                    # 查看所有块设备(确认新盘,如 vdb, nvme1n1)
# 或
fdisk -l | grep "Disk /dev/"   # 列出磁盘,找未分区的新盘

✅ 正常应看到类似:

vda    252:0    0  100G  0 disk   ← 系统盘(已使用)
vdb    252:16   0  200G  0 disk   ← 新挂载的数据盘(无分区,未格式化)

2️⃣ 分区(可选,但推荐:便于管理 & 兼容性好)

fdisk /dev/vdb
# 输入指令:
# n → p → 1 → 回车(默认起始扇区)→ 回车(默认结束扇区)→ w
# 完成分区后,会生成 /dev/vdb1

💡 小贴士:若磁盘 ≥2TB,建议用 parted + GPT 分区表;小盘可用 fdisk + MBR。

3️⃣ 格式化(例如 ext4 文件系统)

mkfs.ext4 /dev/vdb1   # 推荐 ext4(稳定、通用)
# 或 mkfs.xfs /dev/vdb1(适合大文件、高并发,如数据库)

4️⃣ 创建挂载目录并挂载

mkdir -p /data        # 创建挂载点(按需命名,如 /data、/home/www、/var/lib/mysql)
mount /dev/vdb1 /data
df -h                 # 验证是否挂载成功

5️⃣ 设置开机自动挂载(⚠️ 关键!否则重启后丢失)

# 获取磁盘 UUID(更可靠,比 /dev/vdb1 更稳定)
blkid /dev/vdb1
# 输出类似:/dev/vdb1: UUID="xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx" TYPE="ext4"

# 编辑 fstab(备份再操作!)
sudo cp /etc/fstab /etc/fstab.bak
echo "UUID=xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx /data ext4 defaults,noatime 0 2" | sudo tee -a /etc/fstab

# 测试配置是否正确(无报错即 OK)
sudo mount -a

✅ 至此,数据盘已就绪,可开始存放业务数据。


✅ 三、Windows 服务器如何添加数据盘?

  1. 控制台挂载后,远程桌面连接;
  2. 打开「磁盘管理」(diskmgmt.msc);
  3. 找到「状态为『脱机』的新磁盘」→ 右键「联机」;
  4. 右键未分配空间 → 「新建简单卷」→ 向导完成格式化(NTFS)和分配盘符(如 D:);
  5. ✅ 自动加入系统,无需额外配置开机挂载。

⚠️ 重要注意事项

项目 说明
🌐 同可用区限制 数据盘与云服务器必须在同一可用区,否则无法挂载。
💾 系统盘 vs 数据盘 系统盘随实例释放而销毁(除非勾选“释放实例时保留云盘”);数据盘可单独设置“随实例释放”或“不随实例释放”(强烈建议设为 ❌ 不随实例释放,避免误删数据)。
🧹 首次使用必初始化 云硬盘挂载后是“裸盘”,必须分区+格式化才能使用,否则写入会失败。
📦 挂载点路径规范 建议使用 /data/mnt/data 等标准路径,避免挂载到 /usr/var 等系统目录下(可能引发权限或升级问题)。
🔐 权限与 SELinux(Linux) 若应用(如 Nginx、MySQL)需访问数据盘,请确保目录权限正确(如 chown -R www-data:www-data /data),必要时调整 SELinux 上下文(semanage fcontext)。
🔄 扩容数据盘 支持在线扩容(先在控制台扩容云盘 → 再在 OS 中扩展分区和文件系统,如 resize2fs /dev/vdb1),系统盘扩容需关机(部分云厂商支持热扩容,需确认)。

✅ 补充:一键脚本(Linux 快速初始化,谨慎使用)

# 示例:自动分区、格式化、挂载 /dev/vdb 为 /data(仅用于测试环境!生产请人工确认)
DISK="/dev/vdb"
MOUNT_POINT="/data"
mkfs.ext4 ${DISK}1 && 
mkdir -p $MOUNT_POINT && 
mount ${DISK}1 $MOUNT_POINT && 
echo "$(blkid -o value -s UUID ${DISK}1) $MOUNT_POINT ext4 defaults,nofail 0 2" >> /etc/fstab

⚠️ 生产环境请务必逐条执行并验证,避免误操作导致数据丢失。


如你告知具体云厂商(如阿里云/ECS、腾讯云/CVM、华为云/ECS)和操作系统(CentOS 7/8、Ubuntu 22.04、Windows Server 2019),我可以提供定制化命令和截图指引 👇

需要我帮你写一份完整的自动化初始化脚本,或指导 MySQL/Nginx 如何迁移到新数据盘吗?欢迎继续提问! 😊