[TOC]
一、阿里云ECS云主机产品的购买与使用
1.ECS云主机产品介绍
1.1.ECS简介
ECS是阿里云提供的云服务产品(Elastic Compute Service 简称ECS),是一种简单高效、可弹性伸缩的计算服务。
当程序在物理服务器运行负荷不够时,通常的做法都是增加服务器,那么增加一台服务器首先要购买硬件、快递设备、安装硬件设备、部署系统、部署应用、接入集群等等一系列流程,完成这些流程通常需要1-2天时间,而我们如果使用云主机,可以实现自动化感知、自动化扩展集群,当我们需要增加机器时,直接购买即可。
1.2.ECS服务器配置选型
WEB节点:4c X 16GB
- web集群节点一般都是4核CPU+16GB的内存。
DB节点:4c X 64GB 4c X 32GB
- 数据库节点一般都是4核CPU+64GB内存或者是32GB内存,数据库节点主要是看磁盘。
K8S节点:8c X 128GB
- K8S容器节点,对于内存要求是很高的,内存越大越好。
磁盘的选型包括高效云盘、SSD云盘、ESSD云盘,不同云盘的价格、IOPS不同。
其中高效云盘的价格最低,经过市场调研,高效云盘是由一些性能不怎么好的磁盘组成的一个存储资源池,高效云盘的IOPS也是较低的。
如下图可以看到,同等容量的磁盘,高效云盘的IOPS只有5000,价格为415元,SSD云盘IOPS为16800,相较于高效云盘多了一万多的IOPS,IOPS值越高,磁盘的读写速率就越强,仅仅比高效云盘多了一百多块钱,而ESSD云盘就比较贵了,不过ESSD云盘可以根据性能级别选择不同的IOPS配置,价格也都不一样,ESSD的云盘相对于其他云盘价格偏高。
作为数据存储的服务建议采用SSD磁盘。
磁盘故障案例:我们在物理机环境运行的MySQL数据库服务器,配置为4c X 64GB,磁盘为SATA读写速率400Mbps,迁移到云主机之后,服务器配置为4c X 64GB,磁盘为高效云盘,读写速率为100Mbps,可以看到云主机和物理机的配置基本上是一样的,只不过是磁盘类型不一样,我们选择的是高效云盘,当MySQL运行之后,会发现服务器的IO_WAIT指标特别高从而影响数据库的性能。
物理机原来的磁盘读写速率为400Mbps,迁移到云主机后读写速率为100Mbps,足足差了4倍,肯定会影响磁盘的读写性能。
解决方案就是将高效云盘替换成SSD云盘,提高磁盘的IOPS值。
dd | hdparm -t /dev/vda1
使用此命令查询磁盘的读写速率可以看到如下图,我们再物理机上的磁盘读写速率为600多兆,磁盘为SSD。
这个是云主机高效云盘的读写速率,可以看到仅有100多兆。
2.使用阿里云控制台
访问https://www.aliyun.com/登陆阿里云,点击右上角的控制台。
在控制台中可用将我们常用的云产品,点击收藏添加到导航栏,方便我们使用。
3.购买ECS云服务器
购买ECS云服务器的大致步骤:1.设置ECS的基础设置,包括产品的付费模式、所在地域和可用区、资源配置;
2.创建ECS所在地域的VPC网络及交换机设备;
3.设置ECS的网络和安全组,指定ECS使用的VPC和交换机,以及开放的端口号;
4.设置ECS的系统配置,指定服务器密码、实例的名称;
5.设置ECS的分组配置,将ECS服务器放到对应的资源组中,方便查询;
6.确认订单信息。
3.1.创建ECS云服务实例
点击控制台的中的ECS云服务器,进入ECS产品的管理页面。
点击实例--->创建实例。
3.2.设置ECS的基础配置
1)设置ECS的付费模式及地域可用区
付费模式设置为按量付费。
地域选择为距离我们最近的地域,我们选择华北2也就是北京,可用区任意,我们选择为可用区A。
2)设置主机架构及资源配置
架构选择x86计算。
分类为共享型,共享型中找到共享基本型主机,这个机器比较便宜,我们选择一个1核1G配置的主机。
3)设置系统版本以及磁盘配置
在镜像这里设置服务器的系统版本,我们使用的操作系统为CentOS,版本为7.9。
在存储这里去设置云主机的磁盘,我们选择高效云盘,空间为40GB。
到此基础配置已经完成,可以看到价钱是很便宜的,我们可以点击下一步开始配置网络和安全组
3.3.设置ECS的网络和安全组
3.3.1.创建VPC网络和交换机
进入第二网络和安全组的设置后,首先是去配置专有网络,阿里云会为我们选择的地域和可用区默认分配一个VPC网络,如果我们不想使用默认的VPC,就点击图中的前往控制台创建
去创建VPC网络,在创建VPC时也会让我们创建交换机,我们也可以点击图中交换机位置的前往控制台创建
,单独创建交换机。
1)点击创建专有网络
2)配置VPC网络
VPC所在的地域默认会与ECS的地域进行关联。
VPC网络的名称我们就设置为:VPC-HuaBei2-Beijing
IPV4的网段配置有注意的点:
1、VPC设置的网络一定要尽可能的大,有利于我们后期的扩展,VPC网络设置的IPV4网段相当于设置一个网络范围,用于给不同可用区的交换机分配地址网段。
2、每个可用区都有自己的交换机设备,交换机中也需要配置当前可用区的IPV4网段,交换机中设置的网段是最终接入到交换机上的ECS服务器的IP网段地址。
3、如果我们在VPC网络中配置的网段很小,比如24位的掩码,24位的掩码只能修改第四位IP段,相当于网段仅有一个,而每个可用区的交换机都要设置成不同的网段,此时就无法为其他可用区的交换机分配网段了,VPC创建时设置的网段是无法修改的,因此我们在配置VPC网络的IPV4网段时一定要尽可能的大,避免后期增加可用区增加很多服务器时无法分配地址。
IPV4网络我们设置为:10.0.0.0/8 8位掩码的网络可容纳的主机数是非常庞大的,足够为每一个可用区的交换机分配地址段。
2)配置可用区的交换机
设置交换机的名称为:SW-Area-A
选择交换机所在的可用区:选择可用区A,ECS在可用区A中
配置IPV4网络,由于我们在VPC中设置的网络范围很大,因此在交换机这里配置IPV4网段时,就可以设置很多个网段,根据自己的需求,为可用区A的交换机设置一个网段,VPC网络中尽管我们设置的掩码为8,但是在交换机这里设置网段时也最多只能将掩码设置为16个,可以提供65532个IP数,足够我们去使用了。
我们将IPV4网段设置为10.1.1.0/24,C类IP地址,即可用区A的交换机可以分配252个IP数,也就是说我们可以在可用区A中创建252台ECS,足够使用了,如果ECS数量更多,我们就可以缩小掩码范围,可以灵活配置。
配置完成后点击确定就可以创建VPC专有网络了。
3)为可用区B创建交换机
刚刚我们在创建VPC时直接为可用区A创建了交换机,交换机可以针对每个可用区去创建,我们来创建可用区B的交换机。
点击交换机--->创建交换机
专有网络选择为刚刚创建的VPC。
设置交换机的名称为SW-Area-B,选择交换机所在的可用区为可用区B。
最后设置该交换机的IPV4网段,不同的交换机网段不能一样,设置为10.1.2.0/24,最后点击确定即可。
4)查看创建的专有网络和交换机
点击专有网络可以看到创建的VPC,点击交换机可以看到创建的交换机
3.3.2.配置ECS的网络和安全组
1)设置ECS的网络,选择我们创建的VPC网络和交换机。
2)不为ECS分配公网IP,公网IP的流量是非常贵的。
3)设置安全组,开放需要的端口,3389不属于Linux的端口,我们可以不开放。
4)弹性网卡会为我们自动分配IP,选择交换机为我们创建的交换机。
3.4.设置CES的系统配置
1)设置登录凭据为密码方式,我们选择创建后再设置。
2)设置ECS实例的名称,就叫做Web-01。
3)添加ECS的描述。
4)主机名可以不设置。
配置完成后点击下一步进入分组配置。
3.5.设置ECS的分组配置
分组设置主要为不同的ECS设置不同的资源组,方便我们查询主机。
1)点击图中的去创建资源组,为ECS分配一个资源组。
2)点击资源组--->创建资源组
3)设置资源组的标识和名称。
4)为ECS选择资源组,点击下一步进入确认订单。
3.6.确认订单信息购买ECS服务器
在配置清单里可以看到我们所选的配置,价格还是可以接受的,点击创建实例。
ECS实例创建成功。
可以在控制台中的云服务器ECS的实例列表中查看我们购买的云服务器,可以在图中看到ECS的内网地址为10.1.1.153,这个地址是随机分配的,我们无法控制。
4.管理ECS云服务器
4.1.设置ECS服务器的密码
点击更多--->密码/密钥--->重置实例密码
填写实例密码,然后点击提交。
重置完密码后会要求我们重启服务器。
4.2.通过阿里云控制台远程连接ECS服务器
点击远程连接,使用WorkBench远程连接服务器。
选择要远程的ECS实例,输入服务器的账号及密码即可远程登录。
此时就已经连接到ECS的终端了,可以执行相应命令。
4.3.为ECS绑定公网IP通过Xshell连接云服务器
4.3.1.创建弹性公网IP
1)在控制台这里搜索弹性公网IP,进入产品管理页面。
2)点击创建弹性公网IP
3)配置弹性公网IP
商品类型选择按量计费,地域和地区一定要选择ECS所在的地域和地区,带宽峰值直接拉满,流量类型选择按使用流量计费。
4)确认订单信息然后点击立即开通
购买成功后可以在控制台的弹性公网IP这里看到。
4.3.2.为ESC实例绑定公网IP
点击更多--->网络和安全组--->绑定弹性IP
选择购买好的弹性公网IP。
弹性IP绑定完成后可以看到ECS的IP地址增加了一个弹性地址,并且弹性公网IP的状态也已经是已分配。
4.3.3.使用xshell连接ECS云主机
4.4.通过VNC连接服务器
VNC就相当于我们VM虚拟机中的操作界面,用于调试服务器,当服务器出问题后就可以在这里进行操作。
1)首先来设置VNC的密码
2)重启ECS实例
ECS重启是非常慢的,大概10-15分钟,也可以在终端中输入reboot进行重启。
3)通过VNC连接ECS
远程连接方式选择VNC登陆。
输入VNC的密码。
成功进入。
4.5.禁止ping公网IP
找到ECS管理页面--->安全组--->找到ECS对应的安全组列表
点击手动添加,授权策略为拒绝,设置优先级,协议类型为全部ICMP,设置范围-1/-1,授权对象为0.0.0.0/0,表示禁止所有主机使用ICMP协议请求主机。
协议添加成功。
已经无法ping公网地址,保护内网安全。
5.ECS云服务器磁盘扩容
ECS云服务在实际工作中,需要有一个系统盘和一个数据盘,我们刚购买的ECS服务器并没有数据盘,我们可以购买一块云盘,挂载到ECS服务器中,当ECS服务器的数据盘空间不够时,也可以灵活的扩容磁盘容量。
5.1.购买一块云盘
1)在ECS管理界面找到云盘--->创建云盘
2)设置云盘的基本信息及存储空间
是否挂载,选择暂不挂载,稍后手动挂载到对应的ECS服务器中。
云盘的地域和可用区要和ECS保持一致。
云盘的付费方式设置为按量付费。
存储选择高效云盘,空间为20GB。
勾选云服务器ECS服务条款。
3)设置云盘的名称信息
当我们有很多ECS实例,并且有很多云盘时,为了方便区分云盘属于哪个ECS,我们需要为云盘起一个具有意义的名称。
名称为Web-01-data云盘,描述信息为Web-01实例的data数据盘。
将云盘与ECS放在同一个资源组中,最后点击确认订单。
4)确认创建
5.2.将云盘挂载到ECS
1)找到购买好的云盘,点击更多--->挂载。
2)选择对应的ECS实例然后执行挂载。
3)成功挂载到ECS。
5.3.初始化新的云盘并进行挂载
阿里云中的云盘挂载到虚拟机中都是vdx,物理机的都是sdx。
1.先将磁盘进行分区
[root@iZ2ze7rto8oqydzzemi1enZ ~]# fdisk /dev/vdb
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Command (m for help): w
[root@iZ2ze7rto8oqydzzemi1enZ ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
vdb 253:16 0 20G 0 disk
└─vdb1 253:17 0 20G 0 part
2.格式化分区
[root@iZ2ze7rto8oqydzzemi1enZ ~]# mkfs.xfs /dev/vdb1
3.将分区挂载到/data目录
[root@iZ2ze7rto8oqydzzemi1enZ ~]# mkdir /data
[root@iZ2ze7rto8oqydzzemi1enZ ~]# mount /dev/vdb1 /data
4.将分区与目录写入到开机自动挂载的文件中
[root@iZ2ze7rto8oqydzzemi1enZ ~]# vim /etc/fstab
/dev/vdb1 /data xfs defaults 0 0
5.4.为现有云盘扩容
1)点击更多--->云盘扩容。
2)勾选在线扩容,设置扩容后的容量为30GB,最后勾选扩容须知,确认扩容即可。
3)可以看到云盘以及扩容成功,并且ECS挂载的云盘容量也已经是扩容后的空间,但是分区并没有变化。
5.5.在ECS中刷新扩容后的云盘容量
步骤:首先将云盘取消挂载,然后将现有云盘的分区删除,重新为云盘分区,最后刷新磁盘即可。
删除分区是不会清空磁盘中的数据的,数据是保存在磁道并不是分区。
1.在/data目录生成数据,测试扩容前后数据是否会丢失
[root@iZ2ze7rto8oqydzzemi1enZ ~]# mkdir /data/{123.txt,456.txt}
2.查看磁盘的大小是否是扩容后的容量
[root@iZ2ze7rto8oqydzzemi1enZ ~]# fdisk -l /dev/vdb
Disk /dev/vdb: 32.2 GB, 32212254720 bytes, 62914560 sectors
#可以看到容量已经是扩容后的容量了,只是分区没有变。
3.将分区取消挂载
[root@iZ2ze7rto8oqydzzemi1enZ ~]# umount /data/
4.重新将/dev/vdb1进行分区,获取磁盘全部容量
[root@iZ2ze7rto8oqydzzemi1enZ ~]# fdisk /dev/vdb
Command (m for help): d
Command (m for help): n
Select (default p): p
Partition number (1-4, default 1):
First sector (2048-62914559, default 2048):
Command (m for help): w
5.查看分区容量是否发生变化
[root@iZ2ze7rto8oqydzzemi1enZ ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
vda 253:0 0 40G 0 disk
└─vda1 253:1 0 40G 0 part /
vdb 253:16 0 30G 0 disk
└─vdb1 253:17 0 30G 0 part
6.挂载分区
[root@iZ2ze7rto8oqydzzemi1enZ ~]# mount -a
7.刷新分区空间
[root@iZ2ze7rto8oqydzzemi1enZ ~]# xfs_growfs /data/
8.验证数据是否丢失
[root@iZ2ze7rto8oqydzzemi1enZ ~]# ll /data/
total 0
drwxr-xr-x 2 root root 6 Jan 13 15:04 123.txt
drwxr-xr-x 2 root root 6 Jan 13 15:04 456.txt
二、在ESC云服务器中部署KodCloud云盘系统
1.KodCloud云盘简介
KodaCloud云盘代码下载地址:https://static.kodcloud.com/update/download/kodbox.1.15.zip
Kodcloud可道云应用程序是一种云盘存储系统,有这Windows操作系统一样的操作界面,最主要的是Kodcloud程序可以根据需求去配置MySQL、Redis、存储设备等等,非常适合我们后面将Kodcloud接入到阿里云的RDS服务以及OSS存储服务。
2.部署KodCloud云盘系统
2.1.在ECS中安装基本软件
1.安装依赖软件
[root@iZ2ze7rto8oqydzzemi1enZ ~]# yum -y install wget vim unzip lrzsz
2.下载Kodcloud源码
[root@iZ2ze7rto8oqydzzemi1enZ ~]# wget https://static.kodcloud.com/update/download/kodbox.1.15.zip
2.2.部署Nginx和php-fpm组件
1.安装nginx并修改启动用户
[root@iZ2ze7rto8oqydzzemi1enZ ~]# yum -y install nginx
[root@iZ2ze7rto8oqydzzemi1enZ ~]# vim /etc/nginx/nginx.conf
user nginx;
2.安装php并修改启动用户
[root@iZ2ze7rto8oqydzzemi1enZ ~]# wget http://cdn.xuliangwei.com/php.zip
[root@iZ2ze7rto8oqydzzemi1enZ ~]# unzip php.zip
[root@iZ2ze7rto8oqydzzemi1enZ ~]# yum -y localinstall php/*.rpm
[root@iZ2ze7rto8oqydzzemi1enZ ~]# vim /etc/php-fpm.d/www.conf
user = nginx
group = nginx
2.3.部署云盘系统
1.将云盘代码放到指定代码目录
[root@iZ2ze7rto8oqydzzemi1enZ ~]# mkdir /data/code
[root@iZ2ze7rto8oqydzzemi1enZ ~]# unzip kodbox.1.15.zip -d /data/code
[root@iZ2ze7rto8oqydzzemi1enZ ~]# chown -R nginx.nginx /data/code/
2.配置Nginx
[root@iZ2ze7rto8oqydzzemi1enZ ~]# vim /etc/nginx/conf.d/kodcloud.jiangxl.com.cn.conf
server {
listen 80;
server_name kodcloud.jiangxl.com.cn;
location / {
root /data/code;
index index.php;
}
location ~ \.php$ {
root /data/code;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
}
3.启动nginx
[root@iZ2ze7rto8oqydzzemi1enZ ~]# nginx -t
[root@iZ2ze7rto8oqydzzemi1enZ ~]# systemctl start nginx
[root@iZ2ze7rto8oqydzzemi1enZ ~]# systemctl enable nginx
4.启动php-fpm
[root@iZ2ze7rto8oqydzzemi1enZ ~]# systemctl start php-fpm
[root@iZ2ze7rto8oqydzzemi1enZ ~]# systemctl enable php-fpm
3.页面安装KodCloud云盘系统
3.1.安装并配置云盘系统
首先配置hosts文件将域名解析写入到文件中,然后在浏览器中访问http://kodcloud.jiangxl.com.cn/。
1)环境检测
2)数据库配置
数据库可以配置MySQL和Redis,我们现在还没有购买RDS服务,因此先设置为本地。
3)设置管理员账号及密码
3.2.登陆云盘系统
首页如下
云盘也有自己的桌面系统
阿里云ECS云服务器快照操作
1.快照的概念
1.1.什么是快照
阿里云快照FAQ文档:https://help.aliyun.com/document_detail/25391.html
快照就是在某一个时间点,对于云盘的状态做得数据备份,当有天服务器故障时,我们就可以通过快照快速还原系统。
阿里云快照服务相当于一种数据备份手段,可以为所有类型的ECS云盘创建快照,用于备份或者恢复云盘的数据,是一种高效的数据容灾手段。
我们可以某一个ECS实例的云盘创建快照,然后将快照制作成系统镜像,通过镜像去创建ECS云服务器。
阿里云快照分为手动快照和自动快照,快照可以在购买ECS时就进行设置,快照数据也是要花钱的。
快照的功能如下图所示:基于云盘创建快照,当云盘故障时快速恢复,可以在同地域和不同的地域将快照制作成系统镜像,从而去创建相同的ECS云服务器,也可以通过快照创建新的云盘,从而去分析问题,也可以将快照复制到其他地域进行使用。
1.2.云盘增量快照
阿里云的云盘快照第一份快照是全量快照,不备份空数据块,例如我们的云盘有200G存储控制,但是我们只使用了100G,那么第一次快照只会备份使用的100G存储空间的数据,没有使用的空数据块不会备份,当后面每一次进行快照备份时都是增量快照,备份自上一次快照以来变化的数据。
创建每一份快照时,文件系统分块检查云盘的数据,只有发生变化的数据块才会被备份到快照中。
- 快照1是第一份快照,备份了该云盘上某一时刻的所有数据。
- 快照2只备份有变化的数据块B1和C1。数据块A和D引用快照1中的A和D。
- 快照3只备份有变化的数据块B2。数据块A和D引用快照1中的A和D,数据块C1引用快照2中的C1。
- 当云盘需要恢复到快照3的状态时,回滚磁盘功能将数据块A、B2、C1和D备份到云盘上,恢复云盘到快照3的状态。
- 假如您需要删除快照2,则快照中的数据块B1被删除,不会删除存在引用关系的数据块C1。当云盘恢复到快照3的状态时,仍可以恢复数据块C1。
2.为云盘手动创建快照
2.1.创建快照
1)在ECS实例管理页面中找到存储与快照--->云盘--->选择要做快照的云盘(根据实际需求对系统盘和数据盘分别做快照备份)--->创建快照。
我们对系统盘创建快照。
2)设置快照的名称,名称要具有意义,方便查询。
我们就设置为Web-01-Kodcloud-第一次快照,然后点击创建。
3)快照这里就可以看到我们创建的快照信息。
可以看到快照的创建时间、进度和状态,在操作一栏可以对快照进行回滚、创建镜像、复制快照(可以将快照复制到其他地域)等等功能。
2.3.模拟ECS服务器故障
直接将ECS服务器的/目录删掉。
[root@iZ2ze7rto8oqydzzemi1enZ ~]# rm -rf / --no-preserve-root
此时ECS云服务器中提供的服务就不可用了。
2.3.根据快照回滚磁盘恢复ECS
我们刚刚已经创建了快照,下面进行回滚操作。
1)首先将ECS实例关机,停止的时间可能会比较长。
2)找到ECS对应的快照--->回滚磁盘。
3)确认回滚。
4)回滚成功后ECS服务器会自动开机
2.4.登陆ECS查看系统是否正常
系统恢复正常。
3.为云盘设置自动创建快照
3.1.创建自动快照策略
1)点击快照--->自动快照策略--->创建策略。
2)设置策略的名称,设置创建快照的时间点,设置创建快照的周期,设置快照的保留时间。
名称为快照自动化备份,备份周期为周一到周日的5:00/12:00/22:00,保留时长为7天。
3)策略创建成功
3.2.为云盘设置自动快照策略
1)点击设置自动快照策略
2)开启自动快照策略--->关联创建的快照自动备份策略。
3.3.在购买时ECS就为云盘设置自动快照策略
在基础配置中的快照服务这里,选择我们的自动快照策略,要先创建快照策略。