Linux云计算 |【第三阶段】PROJECT1-DAY1
主要内容:
服务器硬件(RAID磁盘阵列、IDRAC远程控制卡)、部署LNMP动态网站(部署LNMP平台、上线Wordpress代码、创建数据库、初始化Wordpress)
一、服务器介绍
1、什么是服务器
服务器(Server)是一种计算机系统,专门设计用于提供服务或资源给其他计算机或设备(通常称为客户端)。服务器可以运行各种操作系统,如 Windows Server、Linux 等,并提供多种服务,如文件共享、数据库管理、Web 托管、电子邮件服务、DNS 解析等。
主要特点:
- 高性能:服务器通常配备高性能的处理器、大容量内存和高速存储设备,以处理大量并发请求
- 高可靠性:服务器通常设计为高可靠性,具备冗余电源、热插拔硬盘、RAID 等技术,以确保服务的连续性
- 可扩展性:服务器支持硬件和软件的扩展,以满足不断增长的业务需求
- 集中管理:服务器通常支持集中管理工具,方便管理员进行远程管理和监控
国内有许多知名的服务器厂家,以下是一些主要的厂家:
华为(Huawei):
提供各种类型的服务器,包括机架式服务器、刀片服务器、高密度服务器等。产品线包括 FusionServer 系列、TaiShan 系列等。浪潮(Inspur):
提供多种服务器产品,包括机架式服务器、塔式服务器、刀片服务器等。产品线包括 Inspur NF 系列、Inspur SA 系列等。联想(Lenovo):
提供 ThinkSystem 系列服务器,包括机架式服务器、塔式服务器、刀片服务器等。产品线包括 ThinkSystem SR 系列、ThinkSystem ST 系列等。曙光(Sugon):
提供高性能计算(HPC)服务器、机架式服务器、刀片服务器等。产品线包括 TC 系列、TS 系列等。新华三(H3C):
提供 H3C UniServer 系列服务器,包括机架式服务器、塔式服务器、刀片服务器等。产品线包括 H3C UniServer R 系列、H3C UniServer T 系列等。
2、服务器硬件配置
服务器硬件配置因应用场景和需求不同而有所差异,以下是一些常见的硬件配置:
处理器(CPU):
- 多采用多核、多线程的处理器,如 Intel Xeon、AMD EPYC 等。
- 核心数和频率根据需求选择,通常从 4 核到数十核不等。
内存(RAM):
- 通常配备大容量内存,从几十 GB 到数 TB 不等。
- 支持 ECC(Error-Correcting Code)内存,提高数据可靠性。
存储:
- 硬盘:通常采用 SATA、SAS、SSD 等类型的硬盘,容量从几百 GB 到数 TB 不等。
- 存储阵列:支持 RAID 技术,提供数据冗余和性能提升。
- 存储扩展:支持外部存储设备,如 SAN(Storage Area Network)、NAS(Network Attached Storage)等。
网络接口:
- 支持多种网络接口,如千兆以太网、万兆以太网、InfiniBand 等。
- 支持多个网络接口卡(NIC),提供高带宽和冗余。
电源和冷却:
- 支持冗余电源,确保高可靠性。
- 配备高效的冷却系统,如风扇、热插拔散热器等。
3、服务器类型
服务器根据外形和用途可以分为多种类型:
机架式服务器(Rack Server):
- 设计为安装在标准机架中,节省空间。
- 适用于数据中心、企业服务器集群等场景。
塔式服务器(Tower Server):
- 外形类似台式机,独立放置。
- 适用于中小型企业、办公室等场景。
刀片服务器(Blade Server):
- 设计为高密度、模块化,多个刀片服务器共享电源、冷却和网络资源。
- 适用于大规模数据中心、云计算等场景。
高密度服务器(Density-Optimized Server):
- 设计为在有限空间内提供高计算密度。
- 适用于云计算、虚拟化等场景。
工作站服务器(Workstation Server):
- 结合工作站和服务器的特点,提供高性能计算和图形处理能力。
- 适用于工程设计、科学计算等场景。
例如:
① Dell入门级单路机架式服务器PowerEdge R330(1U=44.45mm=4.45cm)
产品配置:
- 1路CPU,英特尔至强、英特尔奔腾、英特尔酷睿CPU
- 4个DIMM,最高支持64GB内存
- 2.5或3.5寸硬盘,STATA或SAS接口
- 双电源
② Dell机架式服务器PowerEdge R740(2u=88.9mm=8.89cm)
产品配置:
- 双路CPU,每个CPU支持28个核心
- 24个DIMM内存插槽,最高192GB,ECC DDR4
- 双电源
二、配置服务器硬件RAID
RAID是Redundant Arrays of Independent Drives(独立冗余磁盘阵列)的简称,RAID分为很多级别,常用级别有RAID0、RAID1、RAID5、RAID6、RAID10、RAID01
1、RAID卡配置 RAID5
服务器开机后根据提示快速按Ctrl+R组合键即可进入RAID配置界面,如图所示
进入RAID配置界面可以看到所有未配置的磁盘列表,主菜单包含:VD Mgmt、PD Mgmt、Ctrl Mgmt、Properties,如图所示
Ctrl+N进入下一页菜单,Ctrl+P进入上一页菜单,通过F2可以进入配置菜单,如图所示
正式配置RAID之前可以使用Clear Config清空所有配置,然后选择Create New VD创建新的RADID磁盘阵列,如图所示
在RAID Level中选择RAID级别,如RAID5(最少需要三块磁盘),并在右侧Physical Disks中选择使用哪些物理磁盘组合RAID,如图-11所示。
点击OK确定后,可以在主菜单中看到刚刚创建的磁盘阵列,按F2选择Properties可以配置该磁盘阵列的高级属性,如图所示。
点击Advanced高级,如图所示
在高级属性中开启磁盘缓存,默认未unchanged,需要设置为enable,并可以设置缓存策略:Write Through直写和Write Back回写,write through模式时数据同时被写入缓存和磁盘,安全,但是写入速度慢,write back模式时数据先写入缓存,再写入磁盘,写入速度快,但数据写入缓存时突发断电会导致数据丢失。配置菜单,如图所示。
创建完RADID后还需要初始化磁盘,否则系统无法识别到快设备。菜单如图所示
2、RAID故障恢复
将损坏的磁盘拔掉,替换一块新的磁盘即可,注意需要将新磁盘插入损坏的磁盘相同接口。磁盘大小、品牌尽可能一致。恢复数据时界面会提示Rebuild,效果如图所示。
3、配置Hot Spare磁盘
热备磁盘是提前准备一块备用的磁盘(当前并不使用),当RAID磁盘阵列出现损坏后,系统自动使用该热备磁盘,替代损坏的磁盘,从而不需要人工插拔磁盘即可自动修复。
创建新的RAID磁盘阵列时,不要使用完所有磁盘,留一块磁盘做热备磁盘,点击Advanced高级选项即可配置热备磁盘,如图所示。
勾选Configure Hot Spare配置热备磁盘,如图所示。
在弹出的对话框中勾选需要的热备磁盘即可完成配置,如图所示
4、其他级别的磁盘阵列
其他级别的磁盘阵列配置方式类似,可以根据自己的需要进行配置如RAID10,RAID6等,但是都需要磁盘阵列卡支持才可以配置,如果阵列卡识别不到磁盘,则需要检查阵列卡是否故障。
三、网站服务器搭建项目
1、搭建网站服务器的部署思路
1)前期设计网络架构
网络拓扑设计:
- 绘制网络拓扑图,明确服务器、交换机、路由器、防火墙等设备的位置和连接方式。
- 确定网络分段(如 DMZ 区、内部网络区),确保安全性和隔离性。
确定服务器的台数和应用技术、软件:
- 根据网站的预期流量、功能需求和未来扩展计划,确定服务器的数量和配置。
- 选择合适的服务器类型(如机架式、刀片式)和硬件配置(如 CPU、内存、存储)。
- 确定所需的应用技术(如 Web 服务器、数据库、缓存、负载均衡等)和软件(如 Nginx、Apache、MySQL、Redis 等)。
2)部署网站服务
选择 Web 服务器软件:
- 常用的 Web 服务器软件包括 Nginx、Apache、IIS 等。
- 根据网站的性能需求和开发语言选择合适的 Web 服务器。
配置 Web 服务器:
- 安装和配置 Web 服务器软件,设置虚拟主机、SSL 证书、日志记录等。
- 配置负载均衡(如使用 Nginx 或 HAProxy),确保高可用性和性能。
解决单点故障:
- 使用主从架构或多主架构,确保一台服务器故障时,其他服务器可以接管服务。
- 配置健康检查和自动故障转移机制。
3)存储服务方案
选择存储方案:
- 根据数据量和访问需求,选择合适的存储方案(如本地存储、SAN、NAS、对象存储等)。
- 考虑数据备份和恢复策略,确保数据安全。
配置存储服务:
- 安装和配置存储设备,设置 RAID 以提高数据可靠性和性能。
- 配置存储管理软件,如 LVM(逻辑卷管理)、ZFS 等。
解决单点故障:
- 使用分布式存储系统(如 Ceph、GlusterFS),确保存储的高可用性和可扩展性。
- 配置数据冗余和自动恢复机制。
4)数据库服务
选择数据库软件:
- 常用的数据库软件包括 MySQL、PostgreSQL、MongoDB、Redis 等。
- 根据数据类型和访问模式选择合适的数据库。
配置数据库服务:
- 安装和配置数据库软件,设置主从复制、分片、集群等。
- 优化数据库性能,如索引、查询优化、缓存等。
解决单点故障:
- 使用主从复制或多主复制,确保一台数据库服务器故障时,其他服务器可以接管服务。
- 配置自动故障转移和数据同步机制。
5)缓存服务
选择缓存软件:
- 常用的缓存软件包括 Redis、Memcached 等。
- 根据缓存需求选择合适的缓存方案。
配置缓存服务:
- 安装和配置缓存软件,设置缓存策略、过期时间、持久化等。
- 优化缓存性能,如集群、分片、数据预热等。
解决单点故障:
- 使用主从架构或多主架构,确保一台缓存服务器故障时,其他服务器可以接管服务。
- 配置自动故障转移和数据同步机制。
2、部署LNMP动态网站项目
部署LNMP动态网站,实现以下目标:
- 1)安装LNMP平台相关软件
- 2)配置Nginx实现动静分离
- 3)配置数据库,创建账户与密码
- 4)上线Wordpress代码,使用Wordpress后台管理界面,调整Wordpress版式
实验拓扑图:
步骤1:准备网络环境
[root@localhost ~]# hostnamectl set-hostname web1
[root@web1 ~]# nmcli connection modify eth1 ipv4.method manual ipv4.address 192.168.2.11/24 connection.autoconnect yes
[root@web1 ~]# nmcli connection up eth1
[root@web1 ~]# systemctl stop firewalld
[root@web1 ~]# setenforce 0
[root@web1 ~]# sed -i '/SELINUX/s/disabled/permissive/' /etc/selinux/config
[root@localhost ~]# scp /linux-soft/2/lnmp_soft.tar.gz root@192.168.2.11:/root
步骤2;部署LNMP软件、数据库服务、网页动静分离
1)源码安装Nginx软件
[root@web1 ~]# yum -y install gcc make pcre-devel openssl-devel
[root@web1 lnmp_soft]# tar -xf nginx-1.12.2.tar.gz
[root@web1 lnmp_soft]# cd nginx-1.12.2/
[root@web1 nginx-1.12.2]# ls
auto CHANGES CHANGES.ru conf configure contrib html LICENSE man README src
[root@web1 nginx-1.12.2]# ./configure --user=nginx --prefix=/usr/local/nginx --with-http_ssl_module --with-http_stub_status_module
[root@web1 nginx-1.12.2]# make && make install
2)安装数据库和PHP环境
[root@web1 ~]# yum -y install mariadb mariadb-server mariadb-devel
[root@web1 ~]# yum -y install php php-fpm php-mysql
3)启动所有服务,并设置开机自启
[root@web1 ~]# /usr/local/nginx/sbin/nginx
[root@web1 ~]# systemctl start mariadb
[root@web1 ~]# systemctl start php-fpm
[root@web1 ~]# ss -nlptu | grep :80
tcp LISTEN 0 128 *:80 *:* users:(("nginx",pid=4003,fd=6),("nginx",pid=4002,fd=6))
[root@web1 ~]# ss -nlptu | grep :3306
tcp LISTEN 0 50 *:3306 *:* users:(("mysqld",pid=4259,fd=14))
[root@web1 ~]# ss -nlptu | grep :9000
tcp LISTEN 0 128 127.0.0.1:9000 *:* users:(("php-fpm",pid=4305,fd=0),("php-fpm",pid=4304,fd=0),("php-fpm",pid=4303,fd=0),("php-fpm",pid=4302,fd=0),("php-fpm",pid=4301,fd=0),("php-fpm",pid=4299,fd=6))
[root@web1 ~]# systemctl enable nginx.service
[root@web1 ~]# systemctl enable mariadb
[root@web1 ~]# systemctl enable php-fpm
扩展知识:Service文件存储路径为/usr/lib/systemd/system/目录
[root@web1 ~]# cp /usr/lib/systemd/system/httpd.service /usr/lib/systemd/system/nginx.service
[root@web1 ~]# vim /usr/lib/systemd/system/nginx.service
[Unit]
Description=The Nginx HTTP Server //描述信息
After=network.target remote-fs.target nss-lookup.target //指定启动nginx之前需要其他的其他服务,如network.target等
[Service]
Type=forking
ExecStart=/usr/local/nginx/sbin/nginx
ExecReload=/usr/local/nginx/sbin/nginx -s reload
ExecStop=/bin/kill -s QUIT ${MAINPID}
[Install]
WantedBy=multi-user.target
[root@web1 ~]# systemctl start nginx
[root@web1 ~]# ss -nlptu | grep :80
4)修改Nginx配置文件,实现动静分离
通过两个location实现动静分离,一个匹配动态页面,一个匹配其他所有页面;
[root@web1 ~]# vim /usr/local/nginx/conf/nginx.conf
...
location / {
root html;
index index.php index.html index.htm;
}
location ~ \.php$ {
root html;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi.conf;
}
...
[root@web1 ~]# systemctl restart nginx.service //重启服务,重新加载配置
5)配置数据库账户与权限
为网站提前创建一个数据库、添加账户并设置该账户有数据库访问权限
[root@web1 ~]# mysql
MariaDB [(none)]> create database wordpress character set utf8mb4;
MariaDB [(none)]> grant all on wordpress.* to wordpress@'localhost' identified by 'wordpress';
MariaDB [(none)]> grant all on wordpress.* to wordpress@'192.168.2.11' identified by 'wordpress';
MariaDB [(none)]> flush privileges; //刷新权限
MariaDB [(none)]> exit //退出数据库
解释说明:
# 创建数据库,数据库名称为wordpress,该数据库支持中文(character set utf8mb4)
# 格式:grant 权限 on 数据库名.表名 to 用户名@客户端主机 identified by 密码
# 创建用户并授权,用户名为wordpress,该用户对wordpress数据库下的所有表有所有权限
# wordpress用户的密码是wordpress,授权该用户可以从localhost主机登录数据库服务器
# all代表所有权限(wordpress用户可以对wordpress数据库中所有表有所有权限)
# wordpress.*代表wordpress数据库中的所有表
验证;
[root@web1 ~]# mysql -uwordpress -pwordpress -h 192.168.2.11 wordpress
# -u指定数据库账户名称,-p指定数据库账户的密码,-h指定需要远程数据库的IP地址
# 最后的wordpress为数据库的名称
步骤3:上线wordpress代码
[root@web1 ~]# yum -y install unzip
[root@web1 ~]# cd lnmp_soft/
[root@web1 lnmp_soft]# unzip wordpress.zip
Archive: wordpress.zip
inflating: wordpress/futurio.1.2.11.zip
inflating: wordpress/generatepress.2.2.2.zip
inflating: wordpress/hestia.2.4.2.zip
inflating: wordpress/shop-isle.1.1.52.zip
inflating: wordpress/twentyfourteen.2.6.zip
inflating: wordpress/wordpress-5.0.3-zh_CN.tar.gz
[root@web1 lnmp_soft]# cd wordpress/
[root@web1 wordpress]# ls
futurio.1.2.11.zip hestia.2.4.2.zip twentyfourteen.2.6.zip
generatepress.2.2.2.zip shop-isle.1.1.52.zip wordpress-5.0.3-zh_CN.tar.gz
[root@web1 wordpress]# tar -xf wordpress-5.0.3-zh_CN.tar.gz
[root@web1 wordpress]# cp -r wordpress/* /usr/local/nginx/html/
[root@web1 wordpress]# chown -R apache:apache /usr/local/nginx/html/
补充:动态网站运行过程中,php脚本需对网站目录有读写权限,而php-fpm默认启动用户apache;
步骤4:使用浏览器访问:http://192.168.2.11/
1)第一次访问服务器会自动进入config配置页面
2)开发人员在写代码的时候并不知道数据库服务器的IP、端口、数据库名称、账户等信息,该配置页面主要的作用就是动态配置数据库信息,根据前面步骤配置的数据库信息填空即可
3)点击提交即可完成数据库的初始化工作,php动态脚本会自动在wordpress数据库中创建若干数据表,后期网站的数据都会写入对并的数据表中。
4)第一次使用Wordpress需要给你的网站设置基本信息,如网站标题、网站管理员账户与密码等信息,配置完成后点击安装wordpress即可。
步骤5:Wordpress网站后台管理
1)访问192.168.2.11服务器,进入并熟悉后台管理界面
通常情况下,开发人员会开发一个后台管理界面,当代码上线后,普通用户就可以管理和配置网站页面(需使用网站的超级管理员身份才可进入后台界面)
补充:后台管理界面URL:http://192.168.2.11/wp-login.php
输入管理员用户名和密码,登陆后台管理界面,可查看Wordpress网站后台管理首页
2)修改网站主题
Wordpress主题会影响网站的整体外观,我们可以使用默认自带的若干主题。后台修改网站主题的菜单为--,使用默认主题,点击启用即可;
查看修改主题后效果:
小结:
本篇章节为【第三阶段】PROJECT1-DAY1 的学习笔记,这篇笔记可以初步了解到 服务器硬件(RAID磁盘阵列、IDRAC远程控制卡)、部署LNMP动态网站(部署LNMP平台、上线Wordpress代码、创建数据库、初始化Wordpress)。除此之外推荐参考相关学习网址:
- 浪潮信息技术网 – 360°专家服务
- https://info.support.huawei.com/info-finder/zh/enterprise/index
- 阵列卡损坏的处理_黄宝的技术博客_51CTO博客
- https://support.huawei.com/enterprise/zh/doc/EDOC1000004345/1a7852b0
Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解