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硬盘,并将其空间,扩展至/下.

  1. 添加硬盘或者分区,硬盘组,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

网络方面

  1. 调整动态端口范围为20000-60000
公认端口: 0~1023共1024个端口.
注册端口: 1024~49151,ram松散的绑定一些服务.
动态/私域端口: ~65535
  1. 总结主机到主机的包传递过程。

  1. 总结IP地址 A, B, C, D 类,并解析IP地址的组成
  1. 201.222.200.111/18计算主机数?子网掩码?说明计算方法。
IP 地址: 201.222.200.111
子网掩码: 8.8.2.0
  1. 当A(10.0.1.1/16)与B(10.0.2.2/24)通信,A如何判断是否在同一个网段?A和B能否通信?
  1. 如何将10.0.0.0/8划分32个子网?
    求每个子网的掩码,主机数。
  1. 通过网络配置命令,让主机可以上网。 ip, netmask, gateway, dns,主机名。相关命令总结,最终可以通过这些配置让你的主机上网。
 ~]$ ip addr add 192.168.88/24 dev ens32
 ~]$ ip addr add 192.168.88/24 dev ens32
# 执行多次就可以添加多个不同的ip地址
 
  1. 解析/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/
  1. 基于配置文件或命令完成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 重启并应用网络
  1. 通过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

  1. 总结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、手动制作一个容器镜像创建成容器并正常运行。

posted @ 2023-12-27 19:16  蜜猿  阅读(137)  评论(0)    收藏  举报