task02

1.挂载lvm

lvm建立过程:

  1. 基于硬盘设备创建物理卷pv。

  2. 在pv的基础上在创建卷组vg,创建时可以指定pe的大小,默认4MB。

  3. 创建好卷组之后就可以基于卷组建立指定大小的逻辑卷lvm。lvm支持动态扩展和缩减,具有较高的灵活性。

#创建pv
[root@node1 ~]# pvcreate /dev/sdb /dev/sdc
  Physical volume "/dev/sdb" successfully created.
  Physical volume "/dev/sdc" successfully created.
[root@node1 ~]# pvs
  PV         VG     Fmt  Attr PSize    PFree  
  /dev/sda2  centos lvm2 a--  <299.00g 124.00m
  /dev/sdb   vg1    lvm2 a--     9.99g   9.99g
  /dev/sdc   vg1    lvm2 a--     9.99g   9.99g
​
#创建vg
[root@node1 ~]# vgcreate -s 8M vg1 /dev/sdb /dev/sdc
  Volume group "vg1" successfully created
[root@node1 ~]# vgdisplay vg1
  --- Volume group ---
  VG Name               vg1
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               19.98 GiB
  PE Size               8.00 MiB
  Total PE              2558
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2558 / 19.98 GiB
  VG UUID               0Nodo8-zDIH-C1Ni-feku-PALg-wFIz-2Ex9Ui
​
#创建lv
[root@node1 ~]# lvcreate -L 8G -n lv1 vg1
  Logical volume "lv1" created.
[root@node1 ~]# lvdisplay vg1
  --- Logical volume ---
  LV Path                /dev/vg1/lv1
  LV Name                lv1
  VG Name                vg1
  LV UUID                OfrAsj-nD5s-aFT9-i9X1-vbr1-QFSZ-RgM418
  LV Write Access        read/write
  LV Creation host, time node1, 2021-06-17 16:21:04 +0800
  LV Status              available
  # open                 0
  LV Size                8.00 GiB
  Current LE             1024
  Segments               1
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     256
  Block device           253:3

使用lvm

mkfs.xfs /dev/vg1/lv1
mount /dev/vg1/lv1 test1

2.后台进程放到前台

  • 编写测试程序,让其后台运行

    [root@master ~]# cat a.sh 
    #!/bin/bash
    ​
    while true; do
      echo "Test Programme."
      sleep 2
    done
    [root@master ~]# nohup ./a.sh &
    [1] 23688
    nohup: ignoring input and appending output to ‘nohup.out’
    [root@master ~]# tail -f nohup.out 
    Test Programme.
    Test Programme.
    Test Programme.
    Test Programme.
    Test Programme.
    Test Programme.
    Test Programme.
    Test Programme.
  • 将后台程序调到前台,终止掉

    [root@master ~]# fg
    nohup ./a.sh
    ^C
    [root@master ~]# ps -ef | grep nohup 
    root     24315 15980  0 16:01 pts/0    00:00:00 grep --color=auto nohup

3.二层网络数据包传输过程

task02

说明:

  1. 二层是指数据链路层

  2. 通信的发起一般都是从应用层发起的,自上而下层层封装各层对应的头部后,通过网卡发送出去。通过ip网络的路由转发,发送到目的主机的网卡上,然后由目的主机的内核进行层层解封装,最后发送给应用层的目标进程上。

  3. 二层的通信过程是这样的

    • 首先给网络层传过来的包(Packet)添加链路层头部

    • 二层网络通过mac地址通信,源mac会和目的mac都写在链路层封装的头部里。

    • 封装完成的数据称为帧(Frame),封装后通过物理层以bit的形式发送到二层交换机(如果有);如果是直连的则直接发过去即可。

    • 二层交换机会在内存中维护一个mac地址表,如果目的mac在表中有记录,则通过对应的接口转发出去;如果没有记录,则发送二层广播,获取到目的mac后,继续数据通过指定端口发送出去。

    • 中间如果有路由器和其他二层交换设备,在该层所做的工作类似上一步;

    • 最后发送到目标主机的目标网卡上,收到该数据包后一看mac地址是自己,就解封装后往上层接着发送。

4.三层网络数据包传输过程

说明:

  1. 三层这里指的是OSI网络协议里的网络层。

  2. 简略通信过程如下:

    • 将传输层发来的数据添加网络包头

    • 头部信息里包括源和目的ip信息

    • 然后通过上面的过程转发到目的设备的 网卡上或者路由器上。如果中间有路由器,会从路由器内存中维护的路由表查看记录信息,如果有目的ip的记录,则通过对应的端口转发出去。

    • 在数据链路层的通信过程在上一步有说明。层层递进,到达目的主机后,逐级解封转即可。

    • 目的主机在查看该数据包的过程中,发现目的ip是自己,则转发给上面的传输层。

    • 传输层解封装后获取到某个tcp或者udp端口,从而知道要访问的目的进程是什么。

5.集群搭建前的准备工作

集群这里主要是指计算机集群,由多个相同功能的节点组合而成,用于提供某种特定的资源,从而实现高可用,负载均衡等功能。集群有硬件集群如服务器集群(提供基础计算存储网络等资源),以及软件集群(如mysql,redis集群等)之分。无论是何种集群,在组建之前都需要事先准备底层资源并搭建一些基础服务,以下就是对这个过程的简述。

底层基础设施

  • 服务器节点,用于提供计算资源和常规的存储资源

  • 存储服务器,提供大容量数据存储

  • 网络资源,包括路由器、交换机、负载均衡设备等

  • 安全设备,包括防火墙、审计系统、堡垒机等

上层基础应用

  • 域名解析服务,如需对外访问则需要申请购买,内网使用可以自己搭建

  • 时间同步服务,如chrony或者ntpd等服务,让集群内节点时间保持一致

  • dhcp服务,为集群内主机动态分配ip地址

实际应用

  • 缓存服务,redis,加速数据访问提升访问速度

  • 共享存储服务,nfs或者ceph,存储结构化数据,如视频和图片等信息

  • 数据库服务,mysql,存放结构化数据,如文本信息

  • 监控服务,prometheus,事前预警事后追溯

  • 日志服务,elk,收集日志并进行分析处理

上一篇:IRF技术(★亲测)


下一篇:小技巧——二进制转换