raid的原理,lvm扩容,当前网段空闲ip--三周作业
1.总结raid 0, 1, 5, 10, 01的工作原理**。
总结各自的利用率,冗余性,性能,至少几个硬盘实现。
raid全称独立冗余磁盘整列,是为各种应用场景定制的高性能存储设备。RAID把多块独立硬盘按不同方式组合形成硬盘组(逻辑硬盘),从而提供高存储性能和数据冗余技术,具有数据保护功能。数据写入,RAID控制器把要写入数据分解为多个数据块,然后并行写入磁盘阵列;主机读取数据,RAID控制器并行读取分散在磁盘阵列中各个硬盘上的数据,重新组合提供给主机,实现并行读写操作,从而提高了存取速度。
常用raid级别的原理
* raid0: 条带技术,就是直接将数据拆分,然后串行存入系统。
* raid1: 镜像,指的是将数据复制一份,两块硬盘互为镜像。使用与万无一失的存储方案。
* raid5: 分布奇偶校验条带,就是将数据分成两块及以上分布式存储硬盘组,其中一块内存入校验码,另外两块存数据,其中一块丢失,可以通过还剩余的加上校验码计算得出。raid5就是在raid0条带的基础上加上校验码。因为需要计算,raid5的io次数,翻倍。
* raid10: 镜像加条带,最低4块硬盘,就是将其中两块组成raid1(镜像),然后再组成raid0串起来。提示2倍速度。
* raid01: 先条带后镜像,
* 对比raid安全性raid10大于raid01
2.完成对LVM磁盘扩容及缩容示例。
lvm逻辑卷管理,磁盘扩容,或者将/home 下的空间,扩展至/
1).磁盘管理的相关命令
lsblk -f #磁盘及分区的从属关系
fdisk -l # 打印磁盘分区情况
df -Th # 磁盘剩余空间
du -sh # 该路径下文件大小
磁盘扫描: echo "- - -" > /sys/class/scsi_host/hostX/scan,可以触发系统扫描新加入的磁盘.
分区扫描: partprobe
逻辑卷扫描: pvscan
2).逻辑卷类的管理命令
PVcreate: 创建pv,创建物理卷,他的本质过程就是在分区或者硬盘上打上逻辑卷的标签,其余没错太多操作.
~]$ PVcreate 分区名称(分区类型 linux lvm type 代码) # 默认会生成跟分区路径和名称同名的物理卷
vgcreare: 创建卷组,他的本质上,是创建一个可以容纳物理卷的分组空间,为逻辑卷的使用做好准备.
vgextend: 卷组扩容, 扩展的是物理卷里面的空间.卷组的空间大小是逻辑卷空间的边界,逻辑卷的空间只能小于或等于卷组空间大小.
~]$ VGextend -l +#(容量) 卷组名称
3).逻辑卷卷组中有了空间,就可以创建逻辑卷,或者把原有的逻辑卷扩展容量.
3.逻辑卷扩容实验**
实验内容,在虚拟机中新添加一块25硬盘,并将其空间,扩展至/下.
- 添加硬盘或者分区,硬盘组,raid阵列(总之是可以作为物理卷的块设备就行)
在虚拟机中添加一块磁盘,添加磁盘前,先列出磁盘层级情况.并查看文件系统使用情况.

添加完成硬盘,再次lsblk查看,发现没有识别盘,则执行扫描磁盘命令.发现已经读盘. # 这个地方模拟真实应用场景下,支持热拔插的物理服务器,插入硬盘.

再次使用lsblk查看,磁盘和分区情况,发现
sdb 8:16 0 25G 0 disk # 磁盘类型为disk,不是逻辑卷需要的lvm类型.
# 使用pvcreate 命令创建pv(物理卷),需要使用fdisk -l获取到新加进来的磁盘全称.并执行
~]$ pvcreate /dev/sdb

这地方不新创建卷组,将pv卷加入原有的名为centos卷组,
vgextend rl /dev/sdb

将文件系统扩展至整个设备,并将数据写入内核
# 针对xfs文件系统,使用一下命令
~]$ xfs_growfs [设备名称] (逻辑卷名称)
# 针对ext系列的文件系统,使用如下命令
~]$ resize2fs [设备名称]

4.lvm逻辑卷缩容实验
实验目标,基于上面已经做好的根下的文件系统.缩容并,将刚刚挂载上去的分区,卸载掉.撤回硬盘sdb
实验失败,待探究!
实验愿景: xfs文件系统,在lvm上只支持扩容,不支持缩容,如果要缩容,先备份,然后减容重建,再恢复数据
1)根缩容失败 xfsdump -f /data/home.img /home
对其余挂载点,有以下几个步骤.
失败原因: 卸载根, xfsdump备份根,这些怎么实现.
# 1. 卸载home目录
umount /home/
# 2. 删除 lv_home
### 删除之前要备份或者将PE移动到空闲的PV中
lvremove /dev/centos/home
# 3. 扩容根所在的的 lv
lvresize -L 20G /dev/centos/root
# 4. 扩容根文件系统
xfs_growfs /dev/centos/root
# 5. 重建home的LV
lvcreate -L 1G -n home centos
# 6. 格式化并挂载
mkfs.xfs /dev/centos/home
mount /dev/centos/home /home
# 7. 还原数据
xfsrestore -f /data/home.img /home
5. 总结程序包管理器有哪些,以及包中包含什么内容的文件,尝试这些文件如何获取命令获取? yum/dnf/apt总结程序包获取途径,以及rpm, yum, apt命令选项示例。
程序包管理器:
红帽系(redhat ,centos, rocky等) 使用rpm(Redhat package manager), 为解决包依赖关系的软件包管理器yum; DNF 新一代的rpm软件包管理器.
DPKG,Debian系的包管理系统;
apt,debian,ubuntu的包管理系统;
apt-cache,一个apt软件包管理工具;
大多数类Unix操作系统,都采用中心化的软件搜索和安装机制.软件通常存放于专有的存储仓库,并通过程序包的形式对外分发.包提供了操作系统的基本组件,以及共享的库/应用程序/服务和文档.
包管理系统除了安装软件,它还提供了工具来更新已经安装的包.包存储库有助于确保系统中使用的代码是经过审查的,并且安装的软件版本经过开发人员和维护人员的认可.
虽说包管理系统的功能大致相同,打包格式和工具却因平台而异:
Debian: .deb apt , dpkg
Ubuntu: .deb dpkg
centos: .rpm yum
fedora: .rpm dnf
rocky: .rpm dnf
补充:
# 问题:
1.Ubuntu的apt配置源? 更新源,更新缓存?红帽怎么搭建私有yum仓库,在系统怎么配置仓库
2.基于nginx搭建,httpd搭建私有仓库的原理?实现,注意事项;
3.yum 工具命令,参数,选项
4. apt 命令工具,参数,选项及特性.?
6. 简要总结yum/dnf工作原理。并搭建私有yum仓库(base, epel源)给另一个虚拟机使用。
7. 总结系统安装之后的常用初始化步骤。rocky/ubuntu
# 最小化安装以后,常用的工具软件依赖的库文件等不是最新.
# rockylinux8:
yum install -y zip unzip gcc gcc-c++ wget curl vim procps-ng net-tools iftop htop iotop zlib sshd
6. 解读一键安装httpd脚本,并自行实现一个一键安装脚本,要求
1)基于位置变量传递版本号
2)基于独立函数进行初始化步骤,禁用防火墙,安装开发依赖包。
3)基于独立函数进行下载包,解压包。
4)基于独立函数进行编译,安装包。
5)基于独立函数完成链接包。
6)启动服务,并输出自定义的语句,安装xxx服务
8. 总结开放系统互联OSI模型,每层作用及对应的协议。
顺口溜: 物数网传会表应
| 层级名称 | 协议protocol | 应用APP |
|---|---|---|
| 应用层 | http/https/telnet/ftp/nfs/SMTP/www/DNS/ssh | nginx,httpd,iis微软, httpserver/七层代理,负载均衡/vsftpd/nfs文件系统 |
| 表示层 | jpeg/mpeg/asII | |
| 会话层 | nfs/SQL/netBIOS/rpc | cookie/session |
| 传输层 | tcp/udp | 套接字;端口号 |
| 网络层层 | ip/arp/rarp/ICMP | 路由器/三层交换/ping |
| 数据链路层 | ppp/vlan/mac | 二层交换/网桥/hub,mac |
| 物理层 | rj45/clock/IEEE802. | 双绞线水晶头/ntp协议 |
8.1 应用层
万维网协议
www协议, 全称world wide web,是一种大规模/联机的信息存储集合(网络站点和网页)的协议.该协议定义了统一资源定位符URL,用于标识唯一资源.
协议://主机:port端口/路径

超文本传输协议 http
该协议,定义了客户端进程(浏览器),怎么样向万维网服务器请求万维文档(请求request),以及服务器怎么样把文档传送给浏览器(响应response)
传输层协议
tcp或者upd增加上端口号就可以定义套接字,
tcp20/21即ftp协议(file transport protocol文件传输协议),
tcp+22即ssh协议安全的远程登录协议 ,
tcp+25 SMTP简单邮件传输协议,
tcp53 dns协议;
tcp80 http协议;
tcp443https;
三次握手,四次分手,sync洪水攻击?
网络层: ip(Internet protocol网际互连协议)
ip地址: ipv4地址长度32; 114.114.114.114,421结构等于8,4*8等32,这32位用于标识主机(设备)的逻辑地址.其分成两端,网络段和主机段.
网络号部分: 唯一标识一条链路(逻辑链路或者物理链路)
主机号部分: 唯一标识改链路上链接的具体设备.
掩码: 网络位为1,主机位为0, prefix
网络方面
- 调整动态端口范围为20000-60000
公认端口: 0~1023共1024个端口.
注册端口: 1024~49151,ram松散的绑定一些服务.
动态/私域端口: ~65535
- 总结主机到主机的包传递过程。
- 总结IP地址 A, B, C, D 类,并解析IP地址的组成
- 201.222.200.111/18计算主机数?子网掩码?说明计算方法。
IP 地址: 201.222.200.111
子网掩码: 8.8.2.0
- 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
- 如何将10.0.0.0/8划分32个子网?
求每个子网的掩码,主机数。
- 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。
~]$ ip addr add 192.168.88/24 dev ens32
~]$ ip addr add 192.168.88/24 dev ens32
# 执行多次就可以添加多个不同的ip地址
- 解析/etc/sysconfig/network-scripts/ifcfg-eth0配置格式。
vim /etc/sysconfig/network-scripts/ifcfg-ens32
这个网看配置文件,是以变量的方式存储配置信息,修改变量的值就是修改配置.
| 配置 | 意义 | 可选值 |
|---|---|---|
| TYPE=Ethernet | 网络类型 | 以太网/ |
| PROXY_METHOD=none | 代理方法 | none/或者其他proxy |
| BROWSER_ONLY=no | ||
| BOOTPROTO=static | 引导协议 | |
| DEFROUTE=yes | ||
| IPV4_FAILURE_FATAL=no | ||
| IPV6INIT=yes | ||
| IPV6_AUTOCONF=yes | ||
| IPV6_DEFROUTE=yes | ||
| IPV6_FAILURE_FATAL=no | ||
| IPV6_ADDR_GEN_MODE=eui64 | ||
| NAME=ens32 | 网卡名称 | |
| UUID=1b75543d-2eaa-4cd4-bc0f-662b09205fcf | 网卡id | |
| DEVICE=ens32 | 设备名 | eth0 |
| ONBOOT=yes | 开机启动 | yes/no |
| IPADDR=192.168.8.88 | 地址 | |
| PREFIX=24 | 掩码长度 | netmask=255.255.255.0 |
| GATEWAY=192.168.8.2 | 网关地址 | |
| DNS1=192.168.8.2 | dns解析地址 | 114.114.114.114/ |
- 基于配置文件或命令完成bond0配置
bond0 是 Linux 操作系统中用于网络绑定(Network Bonding)的一种常见命名惯例。网络绑定是一种将多个物理网络接口(NIC,Network Interface Card)组合在一起,形成一个逻辑上的接口,以提高带宽、可靠性或实现负载均衡的技术。
基于配置文件完成bond0配置
vim /etc/sysconfig/network-script/ifcfg-ens32
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
vim /etc/sysconfig/network-script/ifcfg-ens33
DEVICE=eth0
BOOTPROTO=none
ONBOOT=yes
MASTER=bond0
SLAVE=yes
同样的对于
sudo systemctl restart network 重启并应用网络
- 通过ifconfig命令结果找到ip地址.
[root@rocky ~]# ifconfig -a|grep inet|grep -v 127.0.0.1|grep -v inet6| awk '{print $2}'
192.168.8.88
![image]()
19. 使用脚本判断 你主机所在网络内在线的主机IP有哪些? ping通则在线。
for循环,while循环,
测试当前网段空闲ip
#!/bin/bash
# 获取当前ip地址网段
Ip=$(ip a|grep "ens32$" |awk '{print $2}'|awk -F"/" '{print $1}')
Netmask=$(ip a|grep "ens32$" |awk '{print $2}'|awk -F"/" '{print $2}')
n=$(( Netmask / 8 ))
# 使用awk命令获取ip地址的前n段,printf函数,可以格式化输出
sub_ip=$(echo "$Ip" | awk -F"." -v n="$n" '{for(i=1; i<=n; i++) printf "%s%s", $i, (i==n ? "." : FS)} ' )
#for 循环ping这些ip地址,并做出判断
# 这个地方需要"人工饲养的东条英机去捕获野生的三角函数"
trap 'echo "Ctrl+C detected"; exit' INT
for ((i=1;i<=255;i++)); do
ping -w 3 $sub_ip$i > /dev/null
if [ $? -eq 0 ]; then
echo $sub_ip$i "网络畅通"
else
echo $sub_ip$i "不存在"
fi
done
wait
此脚本有个缺陷,就是执行效率低,每个ping大概需要1秒钟,255个就需要255s.cc教练的意见是开起并发,并贴出参考文档,在此没弄很明白!
参考文档链接: https://www.jianshu.com/p/701952ffb755
- 总结TCP包头结构,TCP三次握手,4次挥手。
# 三次握手:
第一次握手:首先处于closed状态的客户端,发送同步请求syn=1,自身并进入syn-send状态.
其次(第二次握手): 服务端收到syn报文后,服务端会由closed状态变成syn-recived状态,并向客户端发送一个响应,设置syn(标志位)和一个ack(确认序列号)
第三次,客户端收到确认变为estableished,向服务器发送确认,并连接建立成功.
四次挥手:
lastb
last命令获取尝试登录的ip地址,并按次数由高到低排序.
获取进程号
ps -ef |grep 2111|grep -v grep|tr -s -t ' ' | cut -d ' ' -f 2| xargs kill -9 {}
ps -ef:
grep -v grep 用于排除包含 "grep" 的行。
在查找进程时,通常会出现包含 "grep" 的行,因为你正使用 grep 命令查找进程,但实际上并不是你想要的进程。
tr -s -t ' ':
tr 是用于替换或删除字符的命令。
-s 选项表示替换重复的字符为单个字符。
-t ' ' 表示将输入中的所有制表符替换为空格
cut -d ' ' -f 2:
cut 用于从文本中剪切部分。
-d ' ' 表示使用空格作为字段分隔符。
-f 2 表示取每行的第二个字段。
xargs kill -9 {}:
架构部分作业:
1、在两台服务器上安装kvm虚拟化,把其中一台的虚拟机迁移到另一台。
2、手动制作一个容器镜像创建成容器并正常运行。


浙公网安备 33010602011771号