如何访问 Amazon EC2 中的附加卷

Mac*_*aca 37 linux amazon-ami amazon-ec2 amazon-ebs

我只是将另一个 ebs 卷附加到正在运行的实例上。但是如何访问该卷?我在/dev/sda任何地方都找不到目录。我应该在哪里看?

cyb*_*x86 42

当您附加 EBS 卷时,您指定要附加的设备。在 linux 下,这些设备是/dev/xvd*- 并且被符号链接到/dev/sd*

在 AWS 控制台中,您可以看到您的 EBS 卷、它们附加到哪些实例以及每个卷附加的设备:

AWS 控制台

您可以通过 CLI 工具实现相同的目的。设置必要的环境变量:

export EC2_PRIVATE_KEY=/root/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem 
export EC2_CERT=/root/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
Run Code Online (Sandbox Code Playgroud)

在当前实例上运行命令(否则,只需指定实例 ID):

ec2-describe-instances `curl -s http://169.254.169.254/latest/meta-data/instance-id` | grep BLOCKDEVICE

BLOCKDEVICE     /dev/sda1       vol-xxxxxxxx    2011-11-13T21:09:53.000Z
BLOCKDEVICE     /dev/sdf        vol-xxxxxxxx    2011-11-13T21:09:53.000Z
BLOCKDEVICE     /dev/sdg        vol-xxxxxxxx    2011-11-13T21:09:53.000Z
Run Code Online (Sandbox Code Playgroud)

值得注意的是,在上述两种情况下 - CLI 和 AWS 控制台 - 设备被描述为附加在/dev/sd*- 然而,实际情况并非如此。

查看/dev的内容:

ls -l /dev/sd* /dev/xv*
lrwxrwxrwx 1 root root       5 Dec 12 18:32 /dev/sda1 -> xvda1
lrwxrwxrwx 1 root root       4 Dec 12 18:32 /dev/sdf -> xvdf
lrwxrwxrwx 1 root root       4 Dec 12 18:32 /dev/sdg -> xvdg
brw-rw---- 1 root disk 202,  1 Dec 12 18:32 /dev/xvda1
brw-rw---- 1 root disk 202, 80 Dec 12 18:32 /dev/xvdf
brw-rw---- 1 root disk 202, 96 Dec 12 18:32 /dev/xvdg
Run Code Online (Sandbox Code Playgroud)

这些设备实际上是/dev/xvd*- 并且/dev/sd*路径是符号链接。

检查当前可用设备的另一种方法是使用fdisk -l,或者更简单的输出:

cat /proc/partitions
major minor  #blocks  name

 202        1    4194304 xvda1
 202       80    6291456 xvdf
 202       96    1048576 xvdg
Run Code Online (Sandbox Code Playgroud)

如果您需要确定安装了哪些设备,请使用mountdf- 并检查/etc/fstab以更改安装选项。

  • FWIW,在最近版本的 Xen 虚拟化 Ubuntu 实例上,xvd* 设备没有符号链接到 sd* (9认同)
  • 为什么我的服务器中不存在符号链接?我可以创建自己的符号链接以确保 sda1 链接到 xvda1 吗?EC2 接口显示 sda1,但实际设备是 xvda1,但目前没有符号链接。 (4认同)

小智 11

要使用附加在 EC2 中的 EBS 卷,您需要先挂载该卷。

  1. 使用 SSH 连接到您的实例。
  2. 使用lsblk命令查看可用磁盘设备及其安装点。

[ec2-user@ip-172-31-86-46 ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 8G 0 disk
??xvda1 202:1 0 8G 0 part /
xvdb 202:16 0 8G 0 disk
xvdf 202:80 0 100G 0 disk

  1. 在卷上创建一个文件系统,例如 -> sudo mkfs -t ext4 /dev/xvdf
  2. 为卷创建一个挂载点目录 -> sudo mkdir mount_point
  3. 要在您刚刚创建的位置挂载此 EBS 卷 -> sudo mount /dev/xvdf mount_point
  4. 要检查您可以执行ls mount_point

    https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html

  • 这应该是公认的答案 (2认同)