如何让 EC2 “妻妾成群”?挂载更多磁盘并实现自动挂载!
在创建EC2的时候,会让我们选择挂载的存储,默认是一个Root盘,但是我们可以挂载更多的EBS盘来满足我们不同的分析流程,现在我们就来学习下如何挂载更多磁盘,并且实现自动挂载吧!
-- D.C
创建EC2挂载多块磁盘
- 创建ec2的step 4,添加更多磁盘,这里系统盘设置为30G,另外添加了两块EBS分别为80G,100G,一步步创建ec2。
- 等ec2启动正常运行后,我们ssh到ec2,查看磁盘状态
df -h
,可以看到只有一块30G的系统盘。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 408K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 30G 1.3G 29G 5% /
tmpfs 99M 0 99M 0% /run/user/1000
- 接着,用
lsblk
命令查看可用磁盘及其挂载点, 我们就知道另外两块磁盘设备叫 xvdb 和 xvdc。
$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
xvda 202:0 0 30G 0 disk
`-xvda1 202:1 0 30G 0 part /
xvdb 202:16 0 80G 0 disk
xvdc 202:32 0 100G 0 disk
- 使用
file -s
命令获取设备信息,例如其文件系统类型。如果输出仅显示 data(如以下示例输出),则说明设备上没有文件系统,我们就必须创建一个文件系统。可以看到,新加的两块磁盘都没有文件系统。
$ sudo file -s /dev/xvda1
/dev/xvda1: SGI XFS filesystem data (blksz 4096, inosz 512, v2 dirs)
$ sudo file -s /dev/xvdb
/dev/xvdb: data
$ sudo file -s /dev/xvdc
/dev/xvdc: data
- 使用
mkfs -t
命令在新加卷上创建一个文件系统。
$ sudo mkfs -t xfs /dev/xvdb
meta-data=/dev/xvdb isize=512 agcount=4, agsize=5242880 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0
data = bsize=4096 blocks=20971520, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=10240, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
$ sudo mkfs -t xfs /dev/xvdc
meta-data=/dev/xvdc isize=512 agcount=4, agsize=6553600 blks
= sectsz=512 attr=2, projid32bit=1
= crc=1 finobt=1, sparse=0
data = bsize=4096 blocks=26214400, imaxpct=25
= sunit=0 swidth=0 blks
naming =version 2 bsize=4096 ascii-ci=0 ftype=1
log =internal log bsize=4096 blocks=12800, version=2
= sectsz=512 sunit=0 blks, lazy-count=1
realtime =none extsz=4096 blocks=0, rtextents=0
Debug:如果提示“找不到 mkfs.xfs”,用这个命令 sudo yum install xfsprogs
安装XFS,然后再试。
- 使用mkdir命令创建卷的挂载点目录。比如80G的卷 xvdb 我拿来放数据库,那就创建一个 /db 的目录;100G的卷 xvdc 我拿来放待分析的基因数据,那就创建 /data。
$ sudo mkdir /db
$ sudo mkdir /data
- 使用
mount
命令挂载相应的卷,这个时候是没权限写入的哦~怎么办?加权限!
$ sudo mount /dev/xvdb /db
$ sudo mount /dev/xvdc /data
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 464K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 30G 1.3G 29G 5% /
tmpfs 99M 0 99M 0% /run/user/1000
tmpfs 99M 0 99M 0% /run/user/0
/dev/xvdb 80G 114M 80G 1% /db
/dev/xvdc 100G 135M 100G 1% /data
- 将这两个文件夹的属主和属组都改为 ec2-user , 测试写入,成功!
$ sudo chown -R ec2-user.ec2-user /db
$ sudo chown -R ec2-user.ec2-user /data
$ ll
drwxr-xr-x 2 ec2-user ec2-user 6 Feb 2 09:05 data
drwxr-xr-x 2 ec2-user ec2-user 15 Feb 2 09:18 db
$ touch /db/1
$ touch /data/1
- 这样就实现挂载啦,如果这台实例一直开着,那我们就可以洗洗睡了。但是如果将来可能会重启这个实例,之前的挂载点是不会自动保留的。要在重启后自动挂载此 EBS 卷,各位看官请往下看。
重启后自动附加附加卷
要在每次系统重启时附加附加的 EBS 卷,可在 /etc/fstab 文件中为该设备添加一个条目。我们可以在 /etc/fstab 中使用设备名称(如 /dev/xvdf),但建议改为使用设备的 128 位通用唯一标识符 (UUID)。设备名称可以更改,但 UUID 会在整个分区的使用寿命期间保留。通过使用 UUID,就可以减少系统在硬件重新配置后无法启动的机会。
- 创建 /etc/fstab 文件的备份,以便我们在编辑时误损坏或删除此文件时,可以恢复到原来的状态。
$ sudo cp /etc/fstab /etc/fstab.orig
- 使用
blkid
命令查找设备的 UUID。如果是 ubuntu 系统,请用lsblk
命令:sudo lsblk -o +UUID
。
$ sudo blkid
/dev/xvda1: LABEL="/" UUID="966db7d5-c190-4987-b5a9-c60e4a9f4ed0" TYPE="xfs" PARTLABEL="Linux" PARTUUID="f6ad119a-c111-4db5-85aa-9ce50ee2725b"
/dev/xvdb: UUID="2696c94b-99ed-4e8b-ab08-5f27fc5d6f55" TYPE="xfs"
/dev/xvdc: UUID="b1c4720c-3d7e-464a-9eb7-b383678f511b" TYPE="xfs"
- 编辑 fstab , 添加条目。
$ sudo vim /etc/fstab
//添加如下条目
UUID=2696c94b-99ed-4e8b-ab08-5f27fc5d6f55 /db xfs defaults,nofail 0 2
UUID=b1c4720c-3d7e-464a-9eb7-b383678f511b /data xfs defaults,nofail 0 2
欲知详情,请打命令 man fstab
。
- 最后检查条目是否有效。
$ sudo umount /db
$ sudo umount /data
$ sudo mount -a
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 448K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 30G 1.3G 29G 5% /
tmpfs 99M 0 99M 0% /run/user/1000
/dev/xvdb 80G 114M 80G 1% /db
/dev/xvdc 100G 135M 100G 1% /data
- reboot/stop start 实例,查看是否自动挂载,没问题!(注意重启以后公网IP会变哦:-)。
$ df -h
Filesystem Size Used Avail Use% Mounted on
devtmpfs 475M 0 475M 0% /dev
tmpfs 492M 0 492M 0% /dev/shm
tmpfs 492M 416K 492M 1% /run
tmpfs 492M 0 492M 0% /sys/fs/cgroup
/dev/xvda1 30G 1.3G 29G 5% /
/dev/xvdc 100G 135M 100G 1% /data
/dev/xvdb 80G 114M 80G 1% /db
tmpfs 99M 0 99M 0% /run/user/1000
相信因为相信,独行因为独行。