将 EBS 添加到 Ubuntu EC2 实例
Posted
技术标签:
【中文标题】将 EBS 添加到 Ubuntu EC2 实例【英文标题】:Add EBS to Ubuntu EC2 Instance 【发布时间】:2012-07-17 03:34:15 【问题描述】:我在将 EBS 卷连接到我的 Ubuntu EC2 实例时遇到问题。
这就是我所做的:
通过 Amazon AWS 控制台,我创建了一个 EBS 150GB 卷并将其附加到一个 Ubuntu 11.10 EC2 实例。在 EBS 卷属性下,“Attachment”显示:“[my Ubuntu instance id]:/dev/sdf (attached)”
尝试在 Ubuntu 机器上安装驱动器,它告诉我“安装:/dev/sdf 不是块设备”
sudo mount /dev/sdf /vol
所以我检查了 fdisk 并尝试从新位置挂载,它告诉我它不是正确的文件系统。
sudo fdisk -l
sudo mount -v -t ext4 /dev/xvdf /vol
错误:
mount: 错误的 fs 类型,错误的选项,/dev/xvdf 上的错误超级块,丢失 代码页或帮助程序,或其他错误 在某些情况下有用的信息 在 syslog 中找到 - 尝试 dmesg |尾巴左右
“dmesg | tail”告诉我它给出了以下错误:
EXT4-fs (sda1): VFS: 找不到 ext4 文件系统
我也尝试按照http://www.webmastersessions.com/how-to-attach-ebs-volume-to-amazon-ec2-instance 的说明将配置放入 /etc/fstab 文件,但仍然给出了相同的文件系统错误。
问题:
Q1:基于第 1 点(上),为什么卷在真正映射到“/dev/xvdf”时却映射到“dev/sdf”?
Q2:我还需要做什么才能加载 EBS 卷?我认为当我将它附加到实例时它会为我处理所有事情。
【问题讨论】:
这可能属于面向系统管理员的 StackExchange 站点。尽管如此,这正是我需要找到的。感谢您提出这个问题! 【参考方案1】:由于这是一个新卷,因此您需要在步骤 1 和步骤 2 之间使用文件系统格式化 EBS 卷(块设备)。因此,使用示例挂载点的整个过程是:
创建 EBS 卷。
将 EBS 卷附加到 /dev/sdf
(该特定设备号的 EC2 外部名称)。
格式化文件系统/dev/xvdf
(该特定设备号的Ubuntu内部名称):
sudo mkfs.ext4 /dev/xvdf
仅当这是一个没有数据的新卷时才格式化文件系统。格式化将导致难以或无法检索该卷上之前的任何数据。
挂载文件系统(更新 /etc/fstab 使其在重启时保持挂载):
sudo mkdir -m 000 /vol
echo "/dev/xvdf /vol auto noatime 0 0" | sudo tee -a /etc/fstab
sudo mount /vol
【讨论】:
明确地说,/dev/xvdf 在您挂载 /dev/sdf 之前并不存在。 非常感谢!我完全被 /mnt 目录弄糊涂了,并错误地认为我告诉 AWS 在创建实例时附加的额外 EBS 卷 (/dev/xvdf) 已经挂载。此外,AWS 显示的 (/dev/sdf) 和存在于 ubuntu 上的 (/dev/xvdf) 之间的映射让我大吃一惊。 @scrapcodes:幸运的是,对于原始发帖人的问题(新的、未格式化的 EBS 卷),这些绝对是正确的步骤。如果您遇到完全不同的情况(从包含现有文件系统的快照创建的 EBS 卷),它们当然可能不是正确的步骤。 为什么第四步要包含标志-m 000
?
@JosephMornin 关闭模式中的所有位是一个简单的指示,即在此处安装新文件系统之前,不应允许任何人在此目录中执行任何操作。这是一条消息,表明该目录已被创建为挂载点。它不是功能所必需的,但有时可以避免在未安装所需卷时创建文件的错误。【参考方案2】:
第 1 步:创建卷 第 2 步:附加到您的实例根卷 第 3 步:运行 sudo resize 2fs -p /dev/xvde 第 4 步:重启 apache2 sudo service apache2 restart 第 4 步:运行 df -h
您可以查看附加到您的实例的总卷。
【讨论】:
以上是关于将 EBS 添加到 Ubuntu EC2 实例的主要内容,如果未能解决你的问题,请参考以下文章
在 EBS 卷上创建文件系统,将其挂载到 EC2 实例并在将实例替换为 CDK 时持久化数据
AWS 自动将 EBS 卷附加到 Elastic Beanstalk 后面的 EC2 实例
多个 EC2 实例(扩展)如何在一个 EBS 上进行数据存储?