1. 总结raid 0, 1, 5, 10, 01的工作原理。总结各自的利用率,冗余性,性能,至少几个硬盘实现。
RAID 0:
工作原理: 数据被分成块,然后分布到多个硬盘上,以提高读写性能。
利用率: 高,因为数据被分散存储在多个硬盘上。
冗余性: 低,没有冗余,一个硬盘故障会导致所有数据丢失。
性能: 高,由于数据并行读写,提供了较高的吞吐量。
硬盘数量: 至少2个。
RAID 1:
工作原理: 数据被完全复制到多个硬盘上,实现冗余备份。
利用率: 中,由于数据被完全复制,总容量为单个硬盘容量的一半。
冗余性: 高,一个硬盘故障不会导致数据丢失。
性能: 读性能较好,写性能略低。
硬盘数量: 至少2个。
RAID 5:
工作原理: 将数据分块存储在多个硬盘上,同时使用奇偶校验位进行数据冗余。
利用率: 高,总容量为(硬盘数量 - 1)乘以单个硬盘容量。
冗余性: 中,一个硬盘故障不会导致数据丢失。
性能: 读性能良好,写性能较好。
硬盘数量: 至少3个。
RAID 10:
工作原理: 将数据同时使用镜像和分条带的方式存储在多个硬盘上,结合了RAID 1和RAID 0的特点。
利用率: 中,总容量为硬盘数量的一半。
冗余性: 高,可以容忍一个硬盘故障。
性能: 读性能和写性能都较好。
硬盘数量: 至少4个。
RAID 01:
工作原理: 将RAID 0的条带集合镜像,结合了RAID 0和RAID 1的特点。
利用率: 低,总容量为硬盘数量的一半。
冗余性: 低,一个硬盘故障可能导致数据丢失。
性能: 读性能和写性能都较好。
硬盘数量: 至少4个。
2. 完成对LVM磁盘扩容及缩容示例。
扩容
1、创建逻辑卷
lvcreat -L 20G -n mylv testvg
2、扩展逻辑卷
lvextend -L 20G /dev/textvg/mylv
3、进行文件系统同步
resize2fs /dev/testvg/mylv
缩容
1、取消逻辑卷挂载
umount /dev/testvg/mylv
2、磁盘检查
e2fsck -f /dev/testvg/mylv
3、收缩文件系统
resize2fs /dev/testvg/mylv 20G
4、缩减逻辑卷大小
lvreduce -L -6G /dev/testvg/mylv
5、重新挂载
mount /dev/testvg/mylv /lvtest
3. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
redhat:rpm文件、rpm包管理器。
debian: deb文件,dpkg包管理器。
4. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
1、安装createrepo包:
yum install -y createrepo
2、创建YUM仓库目录并下载base源和epel源:
mkdir -p /var/www/html/repo
cd /var/www/html/repo
reposync -n --repoid=base --newest-only
reposync -n --repoid=epel --newest-only
3、创建仓库元数据:
createrepo /var/www/html/repo
4、配置HTTP服务(如Apache或Nginx)来提供YUM仓库服务。
yum install -y httpd
echo "/var/www/html 755" >> /etc/apache2/sit-available/yum.conf
systemctl restart apache2
systemctl enable apache2
5、在客户端虚拟机上编辑YUM仓库配置文件 /etc/yum.repos.d/your-repo.repo
,并添加以下内容:
[local-base]
name=Local Base Repo
baseurl=http://<YOUR_REPO_MACHINE_IP>/repo/base
enabled=1
gpgcheck=0
[local-epel]
name=Local EPEL Repo
baseurl=http://<YOUR_REPO_MACHINE_IP>/repo/epel
enabled=1
gpgcheck=0
6、清除YUM缓存并使用新的仓库:
yum clean all
yum makecache
7、测试新的YUM仓库是否工作:
yum repolist
yum update -y
5. 总结系统安装之后的常用初始化步骤。rocky/ubuntu
1、更新系统
-
Rocky Linux
sudo dnf update -
Ubuntu
sudo apt update
2. 设置主机名:
编辑文件:vim /etc/hostname
重启系统:reboot
3. 配置时区
-
Rocky Linux
timedatectl set-timezone Asia/Shanghai -
Ubuntu
dpkg-reconfigure tzdata
4. 配置网络
-
Rocky Linux
vim /etc/sysconfig/network-scripts/ifcfg- -
Ubuntu
vim /etc/netplan/01-netcfg.yaml
5. 配置SSH
-
Rocky Linux
dnf install openssh-server
systemctl enable --now sshd -
Ubuntu
apt install openssh-server
systemctl enable --now ssh
6. 配置防火墙
-
Rocky Linux
dnf install firewalld
systemctl enable --now firewalld
firewall-cmd --zone=public --add-service=ssh --permanent
firewall-cmd --reload -
Ubuntu
apt install ufw
ufw allow ssh
ufw enable
6. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求
1)基于位置变量传递版本号
2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。
3)基于独立函数进行下载包,解压包。
4)基于独立函数进行编译,安装包。
5)基于独立函数完成链接包。
6)启动服务,并输出自定义的语句,安装xxx服务
CPUS=`grep -c processor /proc/cpuinfo`
HTTPD_VERSION=2.4.52
HTTPD_FILE=httpd-${HTTPD_VERSION}.tar.gz
INSTALL_DIR=/apps/httpd
COLOR="echo -e \E[32;1m"
END="\E[0m"
. /etc/os-release
if [[ $ID =~ rhel|rocky|centos ]];then
systemctl disable --now firewalld
yum -y install gcc make apr-devel apr-util-devel openssl-devel pcre-devel
redhat-rpm-config bzip2 wget
elif [ $ID = 'ubuntu' ];then
apt update
apt -y install gcc make libapr1-dev libaprutil1-dev libpcre3-dev libssl-dev
else
$COLOR"不支持此系统,退出!"$END
exit
fi
if [ ! -f ${HTTPD_FILE} ];then
wget https://dlcdn.apache.org//httpd/${HTTPD_FILE} || { $COLOR "下载失败,退
出" $END;exit; }
fi
tar xf ${HTTPD_FILE} -C /usr/local/src
cd /usr/local/src/httpd-${HTTPD_VERSION}
./configure --prefix=${INSTALL_DIR} --enable-ssl --disable-status
make -j $CPUS && make install
ln -s /apps/httpd/bin/apachectl /usr/local/bin/
apachectl start && $COLOR"安装成功!"$END
$COLOR"请访问:http://`hostname -I`"$END
7. 总结开放系统互联OSI模型,每层作用及对应的协议。
8. 调整动态端口范围为20000-60000
echo 20000 60000 > /proc/sys/net/ipv4/ip_port_range
9. 总结TCP包头结构,TCP三次握手,4次挥手。
![](https://img-blog.csdnimg.cn/direct/9a27c65bf34243b5bca5c74b0fa6e460.png)
![](https://img-blog.csdnimg.cn/direct/5dfee83626cc49c7b736ecdf0a0bfd5d.png)
![](https://img-blog.csdnimg.cn/direct/4b46c11dbe314d7db9269b05cd984a83.png)
10. 总结主机到主机的包传递过程。
主机传输之前先要封包 往前面加包头 每一层都得加包头 传输到对方主机后 进行解包 一层解对应层的包 直到剩详细信息
11. 总结IP地址 A, B, C, D 类,并解析IP地址的组成
12. 201.222.200.111/18计算主机数?子网掩码?说明计算方法。
主机数:16382
子网掩码:255.255.192.0
主机数=2^(32-子网掩码)-2
13. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
10.0.1.1的二进制是:00001010.00000000.00000001.00000001 网段是:10.0.0.0/16
10.0.2.2的二进制是:00001010.00000000.00000010.00000010 网段是:10.0.2.0/24
当A给B发送消息时:
A用自己的子网掩码去对B的IP求网段,得到:10.0.0.0/16;在同一个网段,可以通信
当B给A发送消息时:
B用自己的掩码去对A的ip求网段,得到 :10.0.1.0/24;不在一个网段,不能通信
14. 如何将10.0.0.0/8划分32个子网?求每个子网的掩码,主机数。
10.0.0.0转为二进制是:00001010.00000000.00000000.00000000子网掩码是8,表示前8位是网络位,后面24位是主机位,由于要划分位32个子网,网络位向主机位借5位,2^5=32,网络位达到13位,主机位是19位,所以子网范围:
(00001010.00000)(000.00000000) -> (00001010.11111)(000.00000000)
10.0.0.0/13 -> 10.248.0.0/13
每个子网的掩码为13:255.248.0.0
各个子网的主机数是:524286
因为每个子网的主机位都是19位:0000000000000000000-1111111111111111111 即0-524287
所以除去不可用的2个主机,一共524285个主机数
15. 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。
设置主机名
nmcli命令
nmcli connection reload:用于重启网络连接
nmcli connection up/down:用于开启/关闭网络连接
nmcli connection show:用于查看网络连接信息
nmcli connection add:用于创建网卡配置文件
nmcli connection del:用于删除网卡配置文件
16. 解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。
TYPE=Ethernet # 类型,以太网
NAME=eth0 # connection名称
DEVICE=eth0 # 网卡名称
BOOTPROTO=static/dhcp # IP获取方式,设置为静态或DHCP
IPADDR=192.168.1.100 # IP地址
NETMASK=255.255.255.0 # 子网掩码
GATEWAY=192.168.1.1 # 网关地址
DNS1=8.8.8.8 # DNS服务器1
DNS2=8.8.4.4 # DNS服务器2
ONBOOT=yes # 开机自启动
USERCTL=yes # 用户控制
17. 基于配置文件或命令完成bond0配置
/etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=10.0.0.100
PREFIX=8
#miimon指定链路监测时间间隔。如果miimon=100,那么系统每100ms 监测一次链路连接状态,如果有一
条线路不通就转入另一条线路
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
/etc/sysconfig/network-scripts/ifcfg-eth0
NAME=eth0
DEVICE=eth0
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
/etc/sysconfig/network-scripts/ifcfg-eth1
NAME=eth1
DEVICE=eth1
BOOTPROTO=none
MASTER=bond0
SLAVE=yes
ONBOOT=yes
18. 通过ifconfig命令结果找到ip地址.
ifconfig |sed -nr "s/inet ([0-9.]+) .*/\1/p"