【问题标题】:How to mount both sc1 volume on Amazon EC2 instances如何在 Amazon EC2 实例上挂载两个 sc1 卷
【发布时间】:2017-03-02 03:07:38
【问题描述】:

我当前在 /dev/sdf 中的 500GB Amazon EBS 冷硬盘 (sc1) 卷已满。按照此处的教程 (http://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ebs-expand-volume.html#migrate-data-larger-volume),我成功获得了 1.5 TB SC1,安装在 /dev/xvda 中并将其附加到实例。请注意,500 GB sc1 (/dev/sdf) 也附加到实例。

遗憾的是,当我打开实例时,我只在 /dev/xvda 中看到了这个新的 1.5 TB SC1,而在 /dev/sdf 中没有看到旧的 500 GB SC1 和相应的数据。当我做 df -h:

 df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdg1      1.5T   34G  1.5T   3% /
devtmpfs        7.9G   76K  7.9G   1% /dev
tmpfs           7.9G     0  7.9G   0% /dev/shm

如果我关闭了实例,从实例中分离了 1.5 TB SC1 (/dev/xvda),将附加的 500 GB SC1 (/dev/sdf) 保留到实例,最后重新启动了实例,我会再次查看 500 GB TB SC1 (/dev/sdf) 及其中的数据。

 df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdf        500G   492G  8G   99% /
devtmpfs        7.9G   76K  7.9G   1% /dev
tmpfs           7.9G     0  7.9G   0% /dev/shm

有什么方法可以同时挂载这 2 个卷并在同一实例中的这 2 个卷之间查看/传输数据?有哪位大师能开导吗?谢谢。

#

回复评论:

以下是连接 500GB 和 1.5GB SC1 时“lsblk”的结果。

lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    8G  0 disk
└─xvda1 202:1    0    8G  0 part
xvdf    202:80   0  500G  0 disk
└─xvdf1 202:81   0  500G  0 part
xvdg    202:96   0  1.5T  0 disk
└─xvdg1 202:97   0  1.5T  0 part /

以下是连接500GB和1.5GB SC1时“/etc/fstab”中的内容。

LABEL=/     /           ext4    defaults,noatime  1   1
tmpfs       /dev/shm    tmpfs   defaults        0   0
devpts      /dev/pts    devpts  gid=5,mode=620  0   0
sysfs       /sys        sysfs   defaults        0   0
proc        /proc       proc    defaults        0   0

额外的cmets:

UUID 结果

ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 11 Oct 19 08:54 43c07df6-e944-4b25-8fd1-5ff848b584b2 -> ../../xvdg1

#2016-10-21-update

尝试以下方法后

uuidgen
tune2fs /dev/xvdf1 -U <the uuid generated before>

确保两个卷都附加到实例,重新启动实例,只显示 500 GB 的卷。

df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvdg1      493G  473G   20G  96% /
devtmpfs        7.9G   76K  7.9G   1% /dev
tmpfs           7.9G     0  7.9G   0% /dev/shm

lsblk
NAME    MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda    202:0    0    8G  0 disk
└─xvda1 202:1    0    8G  0 part
xvdf    202:80   0  500G  0 disk
└─xvdf1 202:81   0  500G  0 part /
xvdg    202:96   0  1.5T  0 disk
└─xvdg1 202:97   0  1.5T  0 part /

ls -l /dev/disk/by-uuid
total 0
lrwxrwxrwx 1 root root 11 Oct 20 20:48 43c07df6-e944-4b25-8fd1-5ff848b584b2 -> ../../xvdg1
lrwxrwxrwx 1 root root 11 Oct 20 20:48 a0161cdc-2c25-4d18-9f01-a75c6df54ccd -> ../../xvdf1

“sudo mount /dev/xvdg1”也无济于事。你能开导吗?谢谢!

【问题讨论】:

  • 当两个卷都附加到实例时,您能否列出可用磁盘及其运行lsblk 的挂载点?
  • 根本不清楚您是如何从附加为 /dev/xvda 的 sc1 卷启动实例的。根据文档sc1 volumes cannot be a boot volumest1 也不能,并且您的输出捕获显示的附件不是 xvda。
  • 我认为@FrédéricHenri 走在了正确的道路上,/etc/fstab 的内容也可能会有所帮助。卷已附加,但系统只会在启动时挂载其中一个,如果通过 ext2(兼容)标签或 uuid 挂载...它们是克隆,因此它们的标签和 uuid 将相同。
  • 非常感谢大家的评论。致@FrédéricHenri & Michael - sqlbot,在帖子中添加了 lsblk 和 /etc/fstab 结果。
  • 我认为@Michael-sqlbot 有好处,磁盘可以克隆 - 使用以下参数运行lsblk -o NAME,LABEL,UUID,MOUNTPOINT 将显示 2 个磁盘的 UUID,如果它们是克隆的,则它们不能同时挂载

标签: amazon-web-services amazon-ec2


【解决方案1】:

如果 2 个磁盘被克隆并且具有相同的 UUID,则它们不能同时挂载,系统在启动时将挂载它找到的第一个分区。

为您的磁盘生成一个新的 UUID

uuidgen

运行它会给你一个新的 UUID - 顾名思义它将是唯一的

在您的磁盘上应用新的 UUID

在您的情况下,xvdf 未安装,因此您可以更改其 UUID

tune2fs /dev/xvdf1 -U <the uuid generated before>

更改挂载点

它越来越好,但是由于它们被克隆,两个磁盘具有相同的挂载点,这是不可能的。您需要更新您的文件系统表。

  1. 创建一个新文件夹作为您的挂载点

    mkdir /new_drive
    
  2. 将驱动器安装到新的安装点

    sudo mount /dev/xvdg1 /new_drive
    
  3. 更新/etc/fstab,以便在下次重启时正确挂载

更新关于 /dev/xvdg1 drive 的行,你有类似的东西

/dev/xvdg1  /  ext4  ........

更改第二列

/dev/xvdg1  /new_drive  ext4  ........

您可以在 /new_drive 中访问 1.5 TB 中的所有数据。你可以通过运行mount -a来验证文件是否正确

如果您想更改文件夹名称,或者如果您想保留 1.5 TB 作为根挂载点并更改 500 GB 驱动器,请调整此过程。

【讨论】:

  • “系统启动时将挂载它找到的第一个分区” 我不确定它是否是“第一个”分区(当然,从技术上讲,文件系统)。我犯了这个错误,发现它安装了 last 一个。我不知道定义的行为是什么,但你当然是正确的,在这种情况下它肯定不会安装多个。
  • 感谢@Michael-sqlbot 实际上我从来没有调查过(我想我曾经遇到过一个案例,但不是 AWS 的)是哪一个被捡到的。对于超级用户网站来说,这可能是一个很好的问题
  • 谢谢@FrédéricHenri。仔细检查一下:通过重命名 UUID: 1. 我们不需要关闭实例 2. 我们不会丢失磁盘/卷内的数据?
  • 您不会丢失数据,但我不确定您是否可以在不重新启动的情况下安装卷,但您需要执行一次
  • 谢谢@FrédéricHenri。我只是在帖子中包含“ls -l /dev/disk/by-uuid”。所以现在我们只能看到 1.5 TB /dev/xvdg1 的 UUID,但看不到 /dev/xvdf1 的 UUID 500GB。我猜是因为他们像你说的那样共享相同的 UUID?
猜你喜欢
  • 2010-09-24
  • 2012-03-10
  • 2011-08-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-04-15
  • 2011-12-30
  • 2017-04-25
相关资源
最近更新 更多