AWS实例3T磁盘初始化分区及docker环境部署

Posted 杰哥的技术杂货铺

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了AWS实例3T磁盘初始化分区及docker环境部署相关的知识,希望对你有一定的参考价值。

文章目录

一.背景说明

AWS块存储支持的分区格式包括MBR和GPT。其中,MBR只支持处理不大于2 TB的容量,且只支持划分4个主区。如果需要使用大于2 TB的数据盘,必须采用GPT格式。

大于2 TB的数据盘请采用下表中描述的分区工具、分区格式和文件系统。

操作系统分区工具分区格式文件系统
LinuxpartedGPText4

二.磁盘分区

此示例中说明如何在Linux实例上使用Parted工具和e2fsprogs工具分区并格式化一个大容量数据盘

  • 系统:centos 7.7
  • 盘空间:3T
  • 设备名:/dev/nvme1n1

2.1 安装分区工具

前提条件:请确认您的Linux实例上已经安装了Parted工具和e2fsprogs工具。

  • 安装Parted工具:
yum install -y parted
  • 令安装e2fsprogs工具:
yum install -y e2fsprogs

2.2 查看是否存在数据盘

运行以下命令:

fdisk -l

运行结果如下所示,应包含数据盘信息。如果没有,表示未挂载数据盘。

Disk /dev/nvme1n1: 3328.6 GB, 3328599654400 bytes, 6501171200 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

2.3 使用Parted工具为数据盘进行分区

  • 开始分区
parted /dev/nvme1n1
  • 将默认的MBR分区格式转为GPT分区格式
mklabel gpt
  • 划分一个主分区,并设置分区的开始位置和结束位置
mkpart primary 1 100%
  • 检查分区是否对齐
align-check optimal 1

运行结果如下所示:

1 aligned

注:如果返回的是 1 not aligned,说明分区未对齐,需要进行检查。

  • 查看分区表
print
  • 退出Parted工具
quit

Parted工具分区结果如下所示

# arted /dev/nvme1n1
GNU Parted 3.1
Using /dev/nvme1n1
Welcome to GNU Parted! Type 'help' to view a list of commands.
(parted) mklabel gpt             //将默认的MBR分区格式转为GPT分区格式
(parted) mkpart primary 1 100%  //划分一个主分区,并设置分区的开始位置和结束位置         
(parted) align-check optimal 1  //检查分区是否对齐                                        
1 aligned
(parted) print      //查看分区表                                                  
Model: Virtio Block Device (virtblk)
Disk /dev/vdb: 4398GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End     Size    File system  Name     Flags
 1      1049kB  3329GB  3329GB               primary

(parted) quit    //退出Parted工具                                               
Information: You may need to update /etc/fstab.

2.4 系统重读分区表

使系统重读分区表。

partprobe

2.5 为/dev/vdb1分区创建文件系统

  • 创建一个ext4文件系统
mkfs -t ext4 /dev/nvme1n1

2.6 挂载磁盘

  • 将分区/dev/nvme1n1挂载到/opt
mount /dev/nvme1n1 /opt
  • 查看目前磁盘空间和使用情况
df -h

如果返回结果里出现新建文件系统的信息,说明挂载成功,可以进行使用了

/dev/nvme1n1    3.0T   89M  2.9T   1% /opt
  • 设置开机自动挂载

在/etc/fstab文件中写入新分区信息,启动开机自动挂载分区

  • 备份etc/fstab。
cp /etc/fstab /etc/fstab.bak
  • 向/etc/fstab里写入新分区信息
echo `blkid /dev/nvme1n1 | awk 'print $2' | sed 's/\\"//g'` /opt ext4 defaults 0 0 >> /etc/fstab
  • 查看/etc/fstab的信息
cat /etc/fstab

如果返回结果里出现了写入的新分区信息,说明写入成功。

至此,已经成功分区并格式化了一个3 TB数据盘。

三、安装docker

3.1 卸载旧版本

旧版本的 Docker 称为 docker 或者 docker-engine,可以使用如下命令卸载:

# yum remove docker \\
                  docker-client \\
                  docker-client-latest \\
                  docker-common \\
                  docker-latest \\
                  docker-latest-logrotate \\
                  docker-logrotate \\
                  docker-selinux \\
                  docker-engine-selinux \\
                  docker-engine

3.2 使用 yum 安装

  • 1)安装依赖包
# yum install -y yum-utils
  • 2)配置安装源
    国内源:
# yum-config-manager \\
    --add-repo \\
https://mirrors.aliyun.com/docker-ce/linux/centos/docker-ce.repo
$ sudo sed -i 's/download.docker.com/mirrors.aliyun.com\\/docker-ce/g' /etc/yum.repos.d/docker-ce.repo

官方源:

# yum-config-manager \\
--add-repo \\
https://download.docker.com/linux/centos/docker-ce.repo
  • 3)安装 Docker
# yum install docker-ce docker-ce-cli containerd.io

3.3 使用官方安装脚本自动安装

指定使用国内源进行安装

curl -fsSL https://get.docker.com | bash -s docker --mirror Aliyun

或者

curl -sSL https://get.daocloud.io/docker | sh

3.4 启动并加入开机启动

# systemctl start docker
# systemctl enable docker

以上是关于AWS实例3T磁盘初始化分区及docker环境部署的主要内容,如果未能解决你的问题,请参考以下文章

如何选择超过2T和3T及以上硬盘的MBR与GPT分区形式

将文件从 docker 容器写入 AWS 上的主机实例

使用 Docker 在 AWS Elastic Beanstalk 上部署失败

AWS BeansTalk 公开 docker 端口

AWS - ECS - 如何在现有 ECS(带有 1 个 EC2)实例上重新部署更新的 Docker 映像?

如何配置github操作将docker容器部署到aws elasticbeanstalk多容器环境