我刚刚将另一个 ebs 卷附加到正在运行的实例。但是我如何访问该卷?我找不到/dev/sda
任何目录。我应该在哪里查找?
答案1
当您附加 EBS 卷时,您可以指定要附加的设备。在 Linux 下,这些设备是/dev/xvd*
- 并且符号链接到/dev/sd*
在 AWS 控制台中,您可以看到您的 EBS 卷、它们附加到的实例以及每个卷附加的设备:
您可以从 CLI 工具中实现相同的操作。设置必要的环境变量:
export EC2_PRIVATE_KEY=/root/pk-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
export EC2_CERT=/root/cert-XXXXXXXXXXXXXXXXXXXXXXXXXXXXXXXX.pem
在当前实例上运行该命令(否则,只需指定实例 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
值得注意的是,在上述两种情况下 - 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
这些设备实际上是/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
如果您需要确定已安装的设备,请使用mount
和df
- 并检查/etc/fstab
来更改安装选项。
答案2
要使用 EC2 中附加的 EBS 卷,您需要先挂载该卷。
- 使用 SSH 连接到您的实例。
- 使用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
- 在卷上创建文件系统,例如 ->sudo mkfs -t ext4 /dev/xvdf
- 为卷创建一个挂载点目录 ->sudo mkdir mount_point
- 要将此 EBS 卷挂载到您刚刚创建的位置 ->sudo mount /dev/xvdf 挂载点
- 要检查您是否可以执行ls 挂载点
https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-using-volumes.html