EBS 使用教程

滴滴云技术支持发表于:2018年02月05日 17:46:50更新于:2019年03月19日 15:33:17

挂载云盘

  1. 登录 控制台

  2. 在页面顶部导航栏点击存储,并在顶部下面的二级标签选择`云盘(EBS)`,进入我的云盘列表。

    image.png 


  3. 选择一个云盘并点击 `...` 列展开云盘操作列表,选择`挂载到 DC2`。

  4. 在弹出的挂载框中选择要挂载到的 DC2(注:只能挂载到与EBS相同可用区的DC2) ,点击确认。

  5. 如果是全新云盘,从未挂载过,则需要先 `格式化云盘`,才能开始使用该云盘,如果之前已经格式化过,则可直接登录 DC2 使用该云盘。

格式化云盘

全新云盘需要格式化后才能使用,需按如下步骤操作。下文中,以 centos-7.3 DC2 实例为例,其他发行版可能命令有细微差别。

  1. 登录 DC2

  2. 查看挂载之前DC2的块设备列表。

    image.png

  3. 查看挂载之后DC2的块设备列表。

    image.png

    vdb 即是新挂载的云盘。

  4. 在云盘上创建第一个分区。

    1. 对设备运行 fdisk,进入分区程序。

      [dc2-user@10-254-136-43 ~]$ sudo fdisk /dev/vdb
      Welcome to fdisk (util-linux 2.23.2). 
      
      Changes will remain in memory only, until you decide to write them.Be careful before using the write command. 
      
      Device does not contain a recognized partition table
      Building a new DOS disklabel with disk identifier 0xc14bbbbb. 
      Command (m for help):
    2. 输入 n,并按回车,创建新分区。

      Command (m for help): n
      Partition type:   
          p   primary (0 primary, 0 extended, 4 free)
          e   extended
      Select (default p):
    3. 输入 p,并按回车。只要创建 4 个以下的分区,就选 p。

    4. 选择创建的分区号,因为我们是创建第一个分区,所以用默认值就行,直接按回车,按回车后显示如下:

      Select (default p): p
      Partition number (1-4, default 1):
      First sector (2048-10485759, default 2048):
    5. 输入分区的开始位置所在的扇区号。因为分区表需要占一定的空间,另外分区开始的位置需要对齐到一定的字节,而默认值 2048 把这些都考虑进去了,所以用默认值即可,直接按回车,按回车后显示如下:

      First sector (2048-10485759, default 2048):
      Using default value 2048
      Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
    6. 输入分区的结束位置所在的扇区号。因为我们只创建一个分区,所以让分区占满整个磁盘空间,分区结束需设在磁盘最后一个扇区,继续用默认值,直接按回车,按回车后显示如下:

      Last sector, +sectors or +size{K,M,G} (2048-10485759, default 10485759):
      Using default value 10485759
      Partition 1 of type Linux and of size 5 GiB is set
      
      Command (m for help):
    7. 输入 wq,把分区表写入磁盘,并退出。

      Command (m for help): wq
      The partition table has been altered!
      
      Calling ioctl() to re-read partition table.
      Syncing disks.
    8. lsblk 确认分区成功。

      [dc2-user@ip ~]$ lsblk
      NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
      sr0 11:0 1 1024M 0 rom
      vda 253:0 0 20G 0 disk
      └─vda1 253:1 0 20G 0 part /
      vdb 253:16 0 5G 0 disk
      └─vdb1 253:17 0 5G 0 part

      如果输出中包含 vdb1,说明分区成功。

  5. 用下面命令在新分区上创建一个 xfs 文件系统。根据您的需求,可把下面命令中 xfs 换成 ext4或ext3 以创建 ext4 或 ext3 文件系统。如果磁盘容量较大,创建文件系统可能需要较长时间,请耐心等待。

    dc2-user@ip:~$ sudo mkfs.xfs /dev/vdb1
    meta-data=/dev/vdb1 isize=512 agcount=4, agsize=327615 blks
    = sectsz=512 attr=2, projid32bit=1
    = crc=1 finobt=1, sparse=0
    data = bsize=4096 blocks=1310459, imaxpct=25
    = sunit=0 swidth=0 blks
    naming =version 2 bsize=4096 ascii-ci=0 ftype=1
    log =internal log bsize=4096 blocks=2560, version=2
    = sectsz=512 sunit=0 blks, lazy-count=1
    realtime =none extsz=4096 blocks=0, rtextents=0
  6. 将磁盘挂载到 linux 某个目录下,以使得它可以访问。

    1. 创建一个磁盘需要挂载的目录,我们假设挂载到 /data 下。

      dc2-user@ip:~$ sudo mkdir /data
    2. 查看磁盘分区的 UUID,以备挂载时使用。

      dc2-user@ip:~$ ls -al /dev/disk/by-uuid | grep vdb1
      lrwxrwxrwx 1 root root  10 Feb 22 17:52 6f24c2f5-b646-4e4e-a0dc-63b72929453e -> ../../vdb1

      这里 `6f24c2f5-b646-4e4e-a0dc-63b72929453e` 就是 vdb1 分区的 UUID。

    3. 备份 fstab 文件。

      dc2-user@10-254-99-45:~$ sudo cp /etc/fstab /etc/fstab.orig
    4. 编辑 fstab 文件,添加挂载项。

      dc2-user@10-254-99-45:~$ sudo vim /etc/fstab
      dc2-user@10-254-99-45:~$ cat /etc/fstab
      LABEL=cloudimg-rootfs / ext4 defaults 0 0
      UUID=6f24c2f5-b646-4e4e-a0dc-63b72929453e /data xfs defaults 0 0

      其中 `UUID` 那一行是这次操作添加的,这里 `6f24c2f5-b646-4e4e-a0dc-63b72929453e` 就是在 b 步骤得到的 vdb1 的分区 UUID。

    5. 运行下列命令使 fstab 文件生效。

      dc2-user@ip:~$ sudo mount -a
      dc2-user@ip:~$

      没有任何输出代表挂载成功,如果报错,则需调查原因并修正 fstab 文件,如果无法确定错误原因,您总是可以用以下命令回滚 fstab 文件。

      dc2-user@ip:~$ sudo mv /etc/fstab.orig /etc/fstab
    6. 修改挂载目录的拥有者以便他人可以访问。

      dc2-user@ip:~$ sudo chown dc2-user /data

      然后就可以在 /data 目录下创建文件,读写文件了。

卸载云盘

  1. 执行 lsblk 查看云盘挂载情况。

    [dc2-user@ip ~]$ lsblk
     NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
     sr0     11:0    1 1024M  0 rom
     vda    253:0    0   20G  0 disk
     └─vda1 253:1    0   20G  0 part 
     vdb    253:16   0   50G  0 disk
     └─vdb1 253:17   0    5G  0 part /data

    这里显示的 vdb 设备就是新挂载的云盘,分区vdb1 已经 mount 到 /data。

  2. 在 DC2里将云盘 umount

    umount /dev/vdb1
  3. 登录 控制台

  4. 在页面顶部导航栏一级菜单点击存储,并在下面的二级标签选择`云盘(EBS)`,进入我的云盘列表。

  5. 选择一个云盘并点击 `...` 列展开云盘操作列表,选择`卸载云盘`。

  6. 按弹出的确认框操作。

删除云盘

如果您不再需要云盘,可以删除云盘,删除后,云盘数据将无法恢复。

  1. 如果云盘已挂载到 DC2,按 `卸载云盘`操作先卸载云盘。

  2. 登录 控制台

  3. 在页面顶部导航栏点击存储,并在顶部下面的二级标签选择`云盘(EBS)`,进入我的云盘列表。

  4. 选择一个云盘并点击 `...` 列展开云盘操作列表,选择`删除`。

  5. 按弹出的确认框操作。

扩容云盘

随着业务增长,您可能需要扩容(即增加容量)云盘以存放更多的数据,可以顺序执行以下两个步骤完成扩容注:如果云盘里已经有数据,请先打个快照备份数据,以防止因误操作而导致已有的数据损坏

  1. 在控制台上操作扩容云盘。

  2. 登录DC2实例完成扩容。

步骤 1. 在控制台上操作扩容云盘

  1. 登录 控制台

  2. 在页面顶部导航栏点击存储,并在顶部下面的二级标签选择`云盘(EBS)`,进入我的云盘列表。

  3. 选择一个云盘并点击 `...` 列展开云盘操作列表,选择`扩容`。

  4. 在弹出的扩容框中选择扩容到的容量,点击确认。

  5. 在控制台上扩容完毕后,分以下情况:

    如果云盘已经挂载到 DC2 实例,则需要登录实例完成扩容。

    如果云盘还未挂载到 DC2 实例,则需先挂载云盘,然后根据不同情况操作:

  • 全新云盘,并未格式化过,则可经过`格式化云盘`后直接使用。

  • 云盘之前格式化过,则需要登录实例完成扩容。

步骤 2. 登录实例完成扩容

本步骤以具有一个分区 vdb1 的云盘 vdb 的 centos -7.3 DC2 实例为例介绍实例内扩容步骤。

  1. 登录 DC2

  2. 使用 lsblk 查找需要扩容的云盘。

    dc2-user@10-254-99-45:~$ lsblk
    NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
    sr0 11:0 1 1024M 0 rom
    vda 253:0 0 20G 0 disk
    └─vda1 253:1 0 20G 0 part /
    vdb 253:16 0 50G 0 disk
    └─vdb1 253:17 0 5G 0 part /data

    vdb 是我们需要扩容的云盘,并已经在控制台做过扩容操作。

  3. 卸载 vdb1。

    dc2-user@ip:~$ sudo umount /data

    没有任何输出表示卸载成功。

  4. 记录分区的 uuid 以便之后步骤中使用。

    dc2-user@ip:~$ ls -al /dev/disk/by-uuid/ | grep vdb1
    lrwxrwxrwx 1 root root  10 Feb 22 17:52 6f24c2f5-b646-4e4e-a0dc-63b72929453e -> ../../vdb1
  5. 使用 fdisk 扩容 vdb1 分区。

    1. 运行 fdisk 进入磁盘分区。

      dc2-user@ip:~$ sudo fdisk /dev/vdb
      Welcome to fdisk (util-linux 2.23.2).
      
      Changes will remain in memory only, until you decide to write them.
      Be careful before using the write command.
      
      Command (m for help):
    2. 输入 p,打印分区表。

      Command (? for help): p
      
      Disk /dev/vdb: 53.7 GB, 53687091200 bytes, 104857600 sectors
      Units = sectors of 1 * 512 = 512 bytes
      Sector size (logical/physical): 512 bytes / 512 bytes
      I/O size (minimum/optimal): 512 bytes / 512 bytes
      Disk label type: dos
      Disk identifier: 0x1e7b3827
      
         Device Boot      Start         End      Blocks   Id  System
         /dev/vdb1            2048    10485759     5241856   83  Linux

      把打印的分区表内容复制下来保存,之后会用到,由分区表可以看出,磁盘大小为 53.7 GB,说明控制台的操作有效果,但是分区 1 只有 5GB 大小,因此,我们接下来要先扩展分区 1 的大小。

    3. 输入 d 并按回车,删除原分区,删除分区不会造成分区内数据丢失。

      Command (m for help): d
      Selected partition 1
      Partition 1 is deleted
      
      Command (m for help):
    4. 输入 n 并按回车,创建新的分区。

    5. 如果之前只有 1 个分区,如本例,只需在选择分区开始扇区,结束扇区时使用默认值,就可以扩展分区 1 的大小。

      Command (? for help): n
      Partition type:
         p   primary (0 primary, 0 extended, 4 free)
         e   extendedSelect (default p):
      Using default response p
      Partition number (1-4, default 1):First sector (2048-104857599, default 2048):
      Using default value 2048
      Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599):
      Using default value 104857599
      Partition 1 of type Linux and of size 50 GiB is set
      Command (m for help):
    6. 如果之前有多个分区,则在每一步,输入您在 b 步骤记录的分区表对应的值,如各分区的起始扇区,结束扇区,对于最后一个分区的结束扇区,使用默认值,以扩展最后一个分区的大小。

      Command (m for help): n
      Partition type:
         p   primary (0 primary, 0 extended, 4 free)
         e   extendedSelect (default p):
      Using default response p
      Partition number (1-4, default 1):First sector (2048-104857599, default 2048): 2048
      Last sector, +sectors or +size{K,M,G} (2048-104857599, default 104857599): 8191
      Partition 1 of type Linux and of size 3 MiB is set
      
      Command (m for help): n
      Partition type:
         p   primary (1 primary, 0 extended, 3 free)
         e   extended
      Select (default p):Using default response p
      Partition number (2-4, default 2):First sector (8192-104857599, default 8192): 8192
      Last sector, +sectors or +size{K,M,G} (8192-104857599, default 104857599):
      Using default value 104857599
      Partition 2 of type Linux and of size 50 GiB is set
      Command (m for help):

      这里,假设之前有两个分区,第一个分区是起始扇区 2048,结束扇区 8191。第二个分区结束扇区使用默认值 104857566(104857566*512 bytes=50GB),以扩展其大小。

    7. 输入 wq,保存修改结果并退出。

      Command (m for help): wq
      The partition table has been altered!
      Calling ioctl() to re-read partition table.
      Syncing disks.
  6. 检查文件系统是否有报错。

    1. 查看文件系统类型,根据文件系统类型,执行 b 或 c 操作。

      dc2-user@ip:~$ sudo file -sL /dev/vdb1
      /dev/vdb1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

      由输出可见,文件系统类型为 xfs。

    2. xfs 文件系统。

      dc2-user@ip:~$ sudo xfs_repair /dev/vdb1
      Phase 1 - find and verify superblock...
      Phase 2 - using internal log
      - zero log...
      - scan filesystem freespace and inode maps...
      - found root inode chunk
      Phase 3 - for each AG...
      - scan and clear agi unlinked lists...
      - process known inodes and perform inode discovery...
      - agno = 0
      - agno = 1
      - agno = 2
      - agno = 3
      - process newly discovered inodes...
      Phase 4 - check for duplicate blocks...
      - setting up duplicate extent list...
      - check for inodes claiming duplicate blocks...
      - agno = 0
      - agno = 1
      - agno = 2
      - agno = 3
      Phase 5 - rebuild AG headers and trees...
      - reset superblock...
      Phase 6 - check inode connectivity...
      - resetting contents of realtime bitmap and summary inodes
      - traversing filesystem ...
      - traversal finished ...
      - moving disconnected inodes to lost+found ...
      Phase 7 - verify and correct link counts...
      done

      注:如果系统中没有 `xfs_repair` 命令,则需要安装 `xfsprogs` 包。

    3. ext3 或 ext4 文件系统。

      dc2-user@ip:~$ sudo e2fsck -f /dev/vdc
      e2fsck 1.42.13 (17-May-2015)
      Pass 1: Checking inodes, blocks, and sizes
      Pass 2: Checking directory structure
      Pass 3: Checking directory connectivity
      Pass 4: Checking reference counts
      Pass 5: Checking group summary information
      /dev/vdc: 12/327680 files (0.0% non-contiguous), 55903/1310720 blocks
  7. 挂载分区。

    1. 如果磁盘之前已经照`格式化云盘`操作,曾经修改 fstab 配置过 vdb1 的挂载,则只需如下操作:

      dc2-user@ip:~$ sudo mount -a
    2. 否则,照着 `格式化云盘` 第 5 步,修改 fstab 以将 vdb1 挂载到系统中。

  8. 根据磁盘分区上的文件系统不同,使用不同的工具扩容文件系统。

    1. 查看文件系统类型。

      dc2-user@ip:~$ sudo file -sL /dev/vdb1
      /dev/vdb1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)

      由输出可见,文件系统类型为 xfs。

    2. 根据文件系统类型选择以下步骤:

    3. xfs 文件系统。

      dc2-user@ip:~$ df -h
      Filesystem Size Used Avail Use% Mounted on
      udev 488M 0 488M 0% /dev
      tmpfs 100M 5.7M 94M 6% /run
      /dev/vda1 20G 1.2G 19G 6% /
      tmpfs 497M 0 497M 0% /dev/shm
      tmpfs 5.0M 0 5.0M 0% /run/lock
      tmpfs 497M 0 497M 0% /sys/fs/cgroup
      tmpfs 100M 0 100M 0% /run/user/1001
      /dev/vdb1 5.0G 33M 5.0G 1% /data
      
      dc2-user@ip:~$ sudo xfs_growfs -d /data
      meta-data=/dev/vdb1 isize=512 agcount=4, agsize=327615 blks
      = sectsz=512 attr=2, projid32bit=1
      = crc=1 finobt=1 spinodes=0
      data = bsize=4096 blocks=1310459, imaxpct=25
      = sunit=0 swidth=0 blks
      naming =version 2 bsize=4096 ascii-ci=0 ftype=1
      log =internal bsize=4096 blocks=2560, version=2
      = sectsz=512 sunit=0 blks, lazy-count=1
      realtime =none extsz=4096 blocks=0, rtextents=0
      data blocks changed from 1310459 to 13106939
    4. ext3 或 ext4。

      dc2-user@ip:~$ sudo resize2fs /dev/vdc
      resize2fs 1.42.13 (17-May-2015)
      Resizing the filesystem on /dev/vdc to 13107200 (4k) blocks.
      The filesystem on /dev/vdc is now 13107200 (4k) blocks long.
  9. 运行 `df -h` 确认扩容成功。

    dc2-user@ip:~$ df -h
    Filesystem Size Used Avail Use% Mounted on
    udev 488M 0 488M 0% /dev
    tmpfs 100M 5.7M 94M 6% /run
    /dev/vda1 20G 1.2G 19G 6% /
    tmpfs 497M 0 497M 0% /dev/shm
    tmpfs 5.0M 0 5.0M 0% /run/lock
    tmpfs 497M 0 497M 0% /sys/fs/cgroup
    tmpfs 100M 0 100M 0% /run/user/1001
    /dev/vdb1 50G 34M 50G 1% /data
    /dev/vdc 50G 17M 47G 1% /mnt

    其中 vdb 是 xfs,vdc 是 ext4。

创建快照

您可以定期为云盘创建快照。快照是以增量方式保存的,新快照中仅保存设备上在保存上次快照之后更改的数据块。创建快照时云盘必须停止IO,并且最好刷新一下EBS上的文件系统buffer。

  1. 进入存储一级菜单查看云盘的可操作选项。

19_51_37__10_29_2018-0.jpg

  1. 填写快照名称,点击`立即创建`,完成快照创建。
    19_55_25__10_29_2018-2.jpg

删除快照

  1. 选择`计算`一级菜单并点击`快照`进入`我的快照列表`,选择需要删除的快照并点击该快照名进入详情页。
    19_56_14__10_29_2018-3.jpg

  2. 点击`...`列展开快照操作列表,选择`删除快照`。
    19_57_07__10_29_2018-4.jpg

  3. 输入快照名字,点击`确定`,删除快照。
    19_59_00__10_29_2018-5.jpg

还原到快照

  1. 选择`计算`一级菜单并点击`快照`进入`我的快照列表`,选择需要删除的快照并点击该快照名进入详情页
    19_59_36__10_29_2018-6.jpg

  2. 点击`...`列展开快照操作列表,选择`还原`。
    20_00_13__10_29_2018-7.jpg

  3. 点击确定,回滚并重启实例。
    20_00_42__10_29_2018-8.jpg

从快照创建云盘

  1. 选择`计算`一级菜单并点击`快照`进入`我的快照列表`,选择需要删除的快照并点击该快照名进入详情页
    20_01_27__10_29_2018-9.jpg

  2. 点击`...`列展开快照操作列表,选择`创建云盘`。
    20_02_03__10_29_2018-10.jpg

  3. 按照`创建云盘`的步骤依次进行。


当您是Windows系统时,请参考以下步骤。


格式化云盘(Windows)

下文以 Windows Server 2008 R2 中文版实例为例描述 Windows 操作系统格式化云盘的步骤,其他版本或特殊情况下操作有差别。

使用控制台或远程桌面连接登录 Windows 实例。

在屏幕左下角选择服务器管理器,打开存储->磁盘管理,如果”初始化磁盘”对话框自动弹出,选择合适的磁盘分区形式,点击确定初始化磁盘。

屏幕快照 2018-09-14 下午4.28.06.png

如果磁盘处于脱机状态,在脱机磁盘的灰色区域单机鼠标右键,选择联机。

屏幕快照 2018-09-14 下午4.28.42.png

如果磁盘显示“未初始化”,右键选择初始化磁盘,根据向导完成初始化。

屏幕快照 2018-09-14 下午4.29.11.png

在磁盘白色区域右键选择新建简单卷,根据向导完成新建。

屏幕快照 2018-09-14 下午4.29.46.png

屏幕快照 2018-09-14 下午4.30.10.png

屏幕快照 2018-09-14 下午4.30.29.png

在 Windows 资源管理器中可以找到新增的 D 盘。

屏幕快照 2018-09-14 下午4.31.04.png

 

卸载云盘(Windows)

在Windows操作系统下,建议首先暂停对该磁盘的读写操作,并从磁盘管理中对磁盘执行脱机操作,避免数据丢失。

 屏幕快照 2018-09-14 下午4.31.29.png


在存储->我的云盘(EBS)列表中找到对应的磁盘,选择卸载磁盘。

屏幕快照 2018-09-14 下午4.32.18.png

扩容云盘(Windows)

步骤 1. 与 Linux 相同

步骤 2. 登录实例完成扩容

以 Windows Server 2008 R2 中文版为例,把云盘从 20G 扩容到 50G。

打开服务器管理器,右键点击“磁盘管理”,刷新或重新扫描磁盘。

屏幕快照 2018-09-14 下午4.33.00.png

(推荐)右键选择“转换到动态磁盘”,根据向导完成动态转换。

屏幕快照 2018-09-14 下午4.33.24.png

右键点击“新加卷(D:)”选择扩展卷,根据扩展卷向导完成磁盘的扩容。

屏幕快照 2018-09-14 下午4.33.49.png