AWS-EC2自动挂载EBS卷或磁盘

Posted gamedev˚

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS-EC2自动挂载EBS卷或磁盘相关的知识,希望对你有一定的参考价值。

linux下自动挂载的配置文件是放在

[root@ip-172-31-10-1 mongodb]# cat /etc/fstab

#
# /etc/fstab
# Created by anaconda on Mon Feb 22 17:08:22 2016
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=ef6ba050-6cdc-416a-9380-c14304d0d206 /                       xfs     defaults        0 0

在这个配置文件中,最后一行显示的是自动挂载的磁盘。

对于用AMI启动的EC2实例特别要注意,在第一次按照默认配置(实际的启动卷数量)进行启动之后,若想修改默认的卷个数或进行其他卷挂载的时候,需要修改自动挂载脚本。若在不修改配置文件的情况下,解除了在配置文件中出现的原挂载卷,会导致实例在重启后无法正常启动,你的EC2实例也就坏了…

那么,如何查看自己挂载的卷是否在自动挂载的配置文件中?
下面进行查询

首先要查询到机器上挂载了那些卷:

$ df -lh
Filesystem           Size  Used Avail Use% Mounted on
/dev/xvda1            30G   11G   20G  37% /
devtmpfs             3.9G     0  3.9G   0% /dev
tmpfs                3.7G     0  3.7G   0% /dev/shm
tmpfs                3.7G   17M  3.7G   1% /run
tmpfs                3.7G     0  3.7G   0% /sys/fs/cgroup
/dev/xvdg            500G  377G  123G  76% /data_bak
/dev/mapper/kp-data  695G  458G  237G  66% /data
tmpfs                757M     0  757M   0% /run/user/1000

从上面可以看出,/dev开头的是挂载卷,总共有三个挂载卷,我们需要知道每个挂载卷的UUID号。

# lsblk
NAME                                                                                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
xvda                                                                                     202:0    0   30G  0 disk
└─xvda1                                                                                  202:1    0   30G  0 part /
xvdh                                                                                     202:112  0  700G  0 disk
└─kp-data                                                                                253:0    0  695G  0 lvm
loop0                                                                                      7:0    0  100G  0 loop
└─docker-202:1-466265-pool                                                               253:1    0  100G  0 dm
  └─docker-202:1-466265-07b91bd38d426f9da2428c068aa1b780e3ca2236a29cce6efba92c4143adf498 253:2    0   10G  0 dm
loop1                                                                                      7:1    0    2G  0 loop
└─docker-202:1-466265-pool                                                               253:1    0  100G  0 dm
  └─docker-202:1-466265-07b91bd38d426f9da2428c068aa1b780e3ca2236a29cce6efba92c4143adf498 253:2    0   10G  0 dm

# blkid
/dev/block/202:1: UUID="ef6ba050-6cdc-416a-9380-c14304d0d206" TYPE="xfs"
/dev/loop0: UUID="32b45258-a08f-4e9b-b2fa-5baa99f96c7d" TYPE="xfs"
/dev/mapper/docker-202:1-466265-pool: UUID="32b45258-a08f-4e9b-b2fa-5baa99f96c7d" TYPE="xfs"
/dev/mapper/docker-202:1-466265-07b91bd38d426f9da2428c068aa1b780e3ca2236a29cce6efba92c4143adf498: UUID="32b45258-a08f-4e9b-b2fa-5baa99f96c7d" TYPE="xfs"

通过上面两个命令可以查找到对应的UUID号。

将需要去除的卷那一行去掉即可。

另外将EBS卷和实例分离的步骤

  1. 使用以下命令卸载 /dev/sdh 设备
umount -d /dev/sdh
  1. 打开 Amazon EC2 控制台 https://console.aws.amazon.com/ec2/

  2. 在导航窗格中,选择 Volumes。

  3. 选择卷,然后选择 Actions、Detach Volume。

  4. 在确认对话框中,选择 Yes, Detach。

如果碰到显示卷正在使用busy的信息,说明有程序正在使用这个卷。

[centos@ip-172-31-10-1 ~]$ sudo umount /dev/xvdf
umount: /data: target is busy.
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))

通过下面命令查找是哪些进程在使用:

[centos@ip-172-31-10-1 log]$ lsof | grep '/data'
bash      11100        centos  cwd       DIR 202,80      4096   262146 /data/mongo/log
bash      11863        centos  cwd       DIR 202,80      4096        2 /data
bash      12107        centos  cwd       DIR 202,80      4096   262148 /data/mongo/db
lsof      13481        centos  cwd       DIR 202,80      4096   262146 /data/mongo/log
grep      13482        centos  cwd       DIR 202,80      4096   262146 /data/mongo/log
lsof      13483        centos  cwd       DIR 202,80      4096   262146 /data/mongo/log

然后将这些进程kill掉,就可以顺利umount卷或磁盘了~

以上是关于AWS-EC2自动挂载EBS卷或磁盘的主要内容,如果未能解决你的问题,请参考以下文章

AWS EC2挂载EBS磁盘只有2TB的问题

在启动 Amazon EC2 Linux 实例时自动挂载 EBS 卷

您可以将 AWS Multi-Attach EBS 卷挂载到 Terraform 中的自动扩展组吗?

AMI EC2 EBS 备份 - 成本预测

linux自动挂载windows磁盘

Ubuntu如何开机自动挂载NAS磁盘