Linux云计算 |【第三阶段】PROJECT1-DAY1

主要内容:

服务器硬件(RAID磁盘阵列、IDRAC远程控制卡)、部署LNMP动态网站(部署LNMP平台、上线Wordpress代码、创建数据库、初始化Wordpress)

一、服务器介绍

1、什么是服务器

服务器(Server)是一种计算机系统,专门设计用于提供服务或资源给其他计算机或设备(通常称为客户端)。服务器可以运行各种操作系统,如 Windows Server、Linux 等,并提供多种服务,如文件共享、数据库管理、Web 托管、电子邮件服务、DNS 解析等。

主要特点:

  • **高性能:**服务器通常配备高性能的处理器、大容量内存和高速存储设备,以处理大量并发请求
  • **高可靠性:**服务器通常设计为高可靠性,具备冗余电源、热插拔硬盘、RAID 等技术,以确保服务的连续性
  • **可扩展性:**服务器支持硬件和软件的扩展,以满足不断增长的业务需求
  • **集中管理:**服务器通常支持集中管理工具,方便管理员进行远程管理和监控

国内有许多知名的服务器厂家,以下是一些主要的厂家:

  1. 华为(Huawei)

    提供各种类型的服务器,包括机架式服务器、刀片服务器、高密度服务器等。产品线包括 FusionServer 系列、TaiShan 系列等。

  2. 浪潮(Inspur)

    提供多种服务器产品,包括机架式服务器、塔式服务器、刀片服务器等。产品线包括 Inspur NF 系列、Inspur SA 系列等。

  3. 联想(Lenovo)

    提供 ThinkSystem 系列服务器,包括机架式服务器、塔式服务器、刀片服务器等。产品线包括 ThinkSystem SR 系列、ThinkSystem ST 系列等。

  4. 曙光(Sugon)

    提供高性能计算(HPC)服务器、机架式服务器、刀片服务器等。产品线包括 TC 系列、TS 系列等。

  5. 新华三(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:准备网络环境

bash 复制代码
[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软件

bash 复制代码
[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环境

bash 复制代码
[root@web1 ~]# yum -y install mariadb mariadb-server mariadb-devel
[root@web1 ~]# yum -y install php php-fpm php-mysql

3)启动所有服务,并设置开机自启

bash 复制代码
[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/目录

bash 复制代码
[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实现动静分离,一个匹配动态页面,一个匹配其他所有页面;

bash 复制代码
[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)配置数据库账户与权限

为网站提前创建一个数据库、添加账户并设置该账户有数据库访问权限

bash 复制代码
[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数据库中的所有表

验证;

bash 复制代码
[root@web1 ~]# mysql -uwordpress -pwordpress -h 192.168.2.11 wordpress

-u指定数据库账户名称,-p指定数据库账户的密码,-h指定需要远程数据库的IP地址

最后的wordpress为数据库的名称

步骤3:上线wordpress代码

bash 复制代码
[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)。除此之外推荐参考相关学习网址:


Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

相关推荐
菜鸟康1 小时前
Linux系统编程——线程
linux·运维·服务器
乌龟跌倒1 小时前
应用层1——C/S、P2P、DNS域名系统
运维·服务器
worthsen2 小时前
Linux 服务管理 service systemd systemctl
linux·运维
Xiezequan3 小时前
C语言实现跨主机通讯
linux
巴拉特好队友3 小时前
找到一个linux静态库动态库的好资料.3
linux·运维·服务器
一位资深码农3 小时前
关于Nginx
运维·nginx
Hacker_Fuchen4 小时前
linux 中 Vi 和 Vim 的使用
linux·运维·vim
努力的小T4 小时前
Debian操作系统相对于Ubuntu有什么优势吗?
linux·运维·服务器·ubuntu·centos·云计算·debian
毒丐4 小时前
Debian系软件管理工具命令大全
linux·运维·debian
陈序缘4 小时前
Ubuntu下PyTorch开发环境配置
linux·pytorch·ubuntu·职场和发展