0
点赞
收藏
分享

微信扫一扫

云计算运维学习第三周打卡

一天清晨 2022-06-27 阅读 74

一、图文并茂说明raid0,raid1, raid10, raid01, raid5等原理。

云计算运维学习第三周打卡_centos   

      不具有防止数据丢失的功能,主要是能够并行存储,数据存储方式如上图,优势写入速度加倍,但是缺点也很明显,不具备容错能力,一旦坏了一块,数据就会丢失。

云计算运维学习第三周打卡_centos_02

      相比raid0具有数据冗余的能力,能够一定保证其中一块硬盘坏掉,数据不会丢失,如果两块硬盘来做RAID1,读写效率依旧是一块硬盘的,存储量也只有较小那块硬盘的大小,可以理解为一块硬盘正常工作,另一块硬盘正常情况下只做备份用途,当前一块硬盘坏掉,直接顶上。

云计算运维学习第三周打卡_客户端_03

      至少需要三块硬盘组成,既具有数据并行存储的能力,也具有防止某块硬盘坏掉数据丢失的能力,因此RAID5比较常用,一般硬盘都支持,结构图如上,最多只能坏一块因硬盘。

云计算运维学习第三周打卡_centos_04

      raid01,两组raid1组成raid10, raid10,两组raid0组成raid01。

     RAID01当0号硬盘坏掉后,右边2或3其中只要一个坏掉,该磁盘阵列就坏掉了; RAID10 当0号硬盘坏掉后,只有当1坏掉,整个磁盘阵列才会坏掉。相比之下,raid01容错性更好一点。

二、创建一个至少有两个PV组成的大小为20G的名为testvg的VG,要求PE大小为16M,而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录

fdisk /dev/sdb
fdisk /dev/sdc
yum -y install lv2
pvcreate /dev/sdb1 /dev/sdc1
vgcreate -s 16M testvg /dev/sdb1 /dev/sdc1
lvcreate -L 5G -n testlv testvg
mkfs.ext4 /dev/testvg/testlv
mkdir /users/testlv
[root@os7 ~]# mount /dev/testvg/testlv /mnt/users/
[root@os7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 154G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-data 253:2 0 50G 0 lvm /data
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 10G 0 part
└─testvg-testlv 253:3 0 5G 0 lvm /mnt/users
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 10G 0 part
sr0 11:0 1 973M 0 rom

三、新建用户archlinux,要求其家目录为/users/archlinux,而后su切换至archlinux用户,复制/etc/pam.d/目录至自己的家目录。

mkdir /users/archlinux
useradd -d -p 123456 /user/archlinux archlinux
su archlinux
vim /etc/sudoers.d
sudo cp -av /etc/pam.d/ /users/archlinux/

四、扩展testlv至7G,要求archlinux用户的文件不能丢失

lvresize -r -L +2G /dev/testvg/testlv 
[root@os7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 154G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-data 253:2 0 50G 0 lvm /data
sdb 8:16 0 20G 0 disk
└─sdb1 8:17 0 10G 0 part
└─testvg-testlv 253:3 0 7G 0 lvm /mnt/users
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 10G 0 part
sr0 11:0 1 973M 0 rom

五、收缩testlv至3G,要求archlinux用户的文件不能丢失

[root@os7 lost+found]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 100G 1.3G 99G 2% /
devtmpfs 853M 0 853M 0% /dev
tmpfs 865M 0 865M 0% /dev/shm
tmpfs 865M 9.7M 855M 2% /run
tmpfs 865M 0 865M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
/dev/mapper/centos-data 50G 33M 50G 1% /data
tmpfs 173M 0 173M 0% /run/user/0
/dev/mapper/testvg-testlv 6.8G 23M 6.4G 1% /mnt/users
[root@os7 ~]# ll /users/archlinux/
total 4
drwxr-xr-x. 2 root root 4096 Jun 19 20:31 pam.d
[root@os7 ~]# umount /mnt/users/
[root@os7 ~]# e2fsck -f /dev/testvg/testlv
[root@os7 ~]# resize2fs /dev/testvg/testlv 3G
[root@os7 ~]# lvreduce -L 3G /dev/testvg/testlv
[root@os7 ~]# lvreduce -L 3G /dev/testvg/testlv
[root@os7 ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 100G 1.3G 99G 2% /
devtmpfs 853M 0 853M 0% /dev
tmpfs 865M 0 865M 0% /dev/shm
tmpfs 865M 9.7M 855M 2% /run
tmpfs 865M 0 865M 0% /sys/fs/cgroup
/dev/sda1 1014M 133M 882M 14% /boot
/dev/mapper/centos-data 50G 33M 50G 1% /data
tmpfs 173M 0 173M 0% /run/user/0
/dev/mapper/testvg-testlv 2.9G 15M 2.7G 1% /mnt/users
[root@os7 ~]# ll /users/archlinux/
total 4
drwxr-xr-x. 2 root root 4096 Jun 19 20:31 pam.d

六、对testlv创建快照,并尝试基于快照备份数据,验正快照的功能

lvcreate -l 64 -s -n testlv-snapshot /dev/testvg/testlv
mkdir /mnt/snap
mount /dev/testvg/testlv-snapshot /dev/snap
[root@os7 pam.d]# ll /mnt/users/
total 16
drwx------ 2 root root 16384 Jun 25 22:53 lost+found
[root@os7 pam.d]# ll /mnt/snap/
total 16
drwx------ 2 root root 16384 Jun 25 22:53 lost+found
[root@os7 pam.d]# cp /etc/pam.d/ /mnt/users/
[root@os7 pam.d]# ll /mnt/users/
total 20
drwx------ 2 root root 16384 Jun 25 22:53 lost+found
drwxr-xr-x. 2 root root 4096 Jun 19 20:31 pam.d
[root@os7 pam.d]# umount /mnt/users/
[root@os7 pam.d]# umount /mnt/snap/
[root@os7 pam.d]# lvconvert --merge /dev/testvg/testlv-snapshot
Merging of volume testvg/testlv-snapshot started.
testvg/testlv: Merged: 100.00%
[root@os7 pam.d]# mount /dev/testvg/testlv /mnt/users/
[root@os7 pam.d]# ll /mnt/users/
total 16
drwx------ 2 root root 16384 Jun 25 22:53 lost+found

七、创建10G的RAID1,要求CHUNK为128K,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 -c 128K /dev/sdb{1,2}  /dev/sdc1
mkfs.xfs /dev/md0
mkdir /mnt/raid1
mount /dev/md0 /mnt/raid1
blkid
vim /etc/fstab
UUID=e255bac4-f1a2-4fc9-a03a-d67f03cb7a1c /mnt/md0 xfs defaults 0 0
[root@os7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 154G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-data 253:2 0 50G 0 lvm /data
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
│ └─md0 9:0 0 10G 0 raid1 /mnt/md0
└─sdb2 8:18 0 10G 0 part
└─md0 9:0 0 10G 0 raid1 /mnt/md0
sdc 8:32 0 20G 0 disk
└─sdc1 8:33 0 10G 0 part
└─md0 9:0 0 10G 0 raid1 /mnt/md0
sr0 11:0 1 973M 0 rom

八、创建一个可用空间为10G的RAID10设备,要求CHUNK为256K,文件系统为ext4,开机可自动挂载至/mydata目录

mdadm -C /dev/md1 -a yes -l 10 -n 4 -x 1   -c  512k  /dev/sdb{1,2}  /dev/sdc{1,2}   /dev/sdd1
mkfs.ext4 /dev/md1
mkdir /mnt/md1
mount /dev/md1 /mnt/md1
vim /etc/fstab
UUID=513d1d88-93f3-4fc3-9c45-4ad04a17be30 /mnt/md1 ext4 defaults 0 0
[root@os7 ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 200G 0 disk
├─sda1 8:1 0 1G 0 part /boot
└─sda2 8:2 0 154G 0 part
├─centos-root 253:0 0 100G 0 lvm /
├─centos-swap 253:1 0 4G 0 lvm [SWAP]
└─centos-data 253:2 0 50G 0 lvm /data
sdb 8:16 0 20G 0 disk
├─sdb1 8:17 0 10G 0 part
│ └─md1 9:1 0 20G 0 raid10 /mnt/md1
└─sdb2 8:18 0 10G 0 part
└─md1 9:1 0 20G 0 raid10 /mnt/md1
sdc 8:32 0 20G 0 disk
├─sdc1 8:33 0 10G 0 part
│ └─md1 9:1 0 20G 0 raid10 /mnt/md1
└─sdc2 8:34 0 10G 0 part
└─md1 9:1 0 20G 0 raid10 /mnt/md1
sdd 8:48 0 20G 0 disk
└─sdd1 8:49 0 10G 0 part
└─md1 9:1 0 20G 0 raid10 /mnt/md1
sr0 11:0 1 973M 0 rom

九静态配置网卡IP,centos/ubuntu实现

vim /etc/sysconfig/network-scripts/ifcfg-eth0 
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
IPADDR=192.168.150.129
PREFIX=24
GATEWAY=192.168.150.2
DNS1=8.8.8.8
DNS2=144.144.144.144
ONBOOT=yes


vim /etc/netplan/01-netcfg.yaml
network:
version: 2
renderer: networkd
ethernets:
ens3:
dhcp4: no
addresses:
- 192.168.121.221/24
gateway4: 192.168.121.1
nameservers:
addresses: [8.8.8.8, 1.1.1.1]

netplan apply

十、TCP协议三次握手四次挥手

云计算运维学习第三周打卡_客户端_05

第一次握手:建立连接时,客户端发送syn包(syn=1)到服务器,并进入SYN_SENT状态,等待服务器确认;SYN:同步序列编号(Synchronize Sequence Numbers)。

​第二次握手:服务器收到syn包,必须确认客户的SYN(ack=1),同时自己也发送一个SYN包(syn=1),即SYN+ACK包,此时服务器进入SYN_RECV状态;

​第三次握手:客户端收到服务器的SYN+ACK包,向服务器发送确认包ACK(ack=k+1),此包发送完毕,客户端和服务器进入ESTABLISHED(TCP连接成功)状态,完成三次握手。

云计算运维学习第三周打卡_客户端_06

1)客户端进程发出连接释放报文,并且停止发送数据。释放数据报文首部,FIN=1,其序列号为seq=u(等于前面已经传送过来的数据的最后一个字节的序号加1),此时,客户端进入FIN-WAIT-1(终止等待1)状态。 TCP规定,FIN报文段即使不携带数据,也要消耗一个序号。2)服务器收到连接释放报文,发出确认报文,ACK=1,ack=u+1,并且带上自己的序列号seq=v,此时,服务端就进入了CLOSE-WAIT(关闭等待)状态。TCP服务器通知高层的应用进程,客户端向服务器的方向就释放了,这时候处于半关闭状态,即客户端已经没有数据要发送了,但是服务器若发送数据,客户端依然要接受。这个状态还要持续一段时间,也就是整个CLOSE-WAIT状态持续的时间。3)客户端收到服务器的确认请求后,此时,客户端就进入FIN-WAIT-2(终止等待2)状态,等待服务器发送连接释放报文(在这之前还需要接受服务器发送的最后的数据)。4)服务器将最后的数据发送完毕后,就向客户端发送连接释放报文,FIN=1,ack=u+1,由于在半关闭状态,服务器很可能又发送了一些数据,假定此时的序列号为seq=w,此时,服务器就进入了LAST-ACK(最后确认)状态,等待客户端的确认。5)客户端收到服务器的连接释放报文后,必须发出确认,ACK=1,ack=w+1,而自己的序列号是seq=u+1,此时,客户端就进入了TIME-WAIT(时间等待)状态。注意此时TCP连接还没有释放,必须经过2∗∗MSL(最长报文段寿命)的时间后,当客户端撤销相应的TCB后,才进入CLOSED状态。6)服务器只要收到了客户端发出的确认,立即进入CLOSED状态。同样,撤销TCB后,就结束了这次的TCP连接。可以看到,服务器结束TCP连接的时间要比客户端早一些。

十一、网卡绑定bond0的实现

vim /etc/sysconfig/network-scripts/ifcfg-bond0
NAME=bond0
TYPE=bond
DEVICE=bond0
BOOTPROTO=none
IPADDR=192.168.150.100
PREFIX=24
BONDING_OPTS="mode=1 miimon=100 fail_over_mac=1"
GATEWAY=192.168.150.2
DNS=8.8.8.8
DNS1=144.144.144.144
DNS2=4.4.4.4
DNS3=192.168.150.2

vim /etc/sysconfig/network-scripts/ifcfg-eth0
DEVICE=eth0
NAME=eth0
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
ONBOOT=yes

vim /etc/sysconfig/network-scripts/ifcfg-eth1
DEVICE=eth1
NAME=eth1
BOOTPROTO=static
MASTER=bond0
SLAVE=yes
ONBOOT=yes

此命令为查看bond0状态,目前两个都处于正常工作状态。
[root@os7 ~]# cat /proc/net/bonding/bond0
Ethernet Channel Bonding Driver: v3.7.1 (April 27, 2011)
Bonding Mode: fault-tolerance (active-backup) (fail_over_mac active)
Primary Slave: None
Currently Active Slave: eth0
MII Status: up
MII Polling Interval (ms): 100
Up Delay (ms): 0
Down Delay (ms): 0

Slave Interface: eth0
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:a7:1e:99
Slave queue ID: 0

Slave Interface: eth1
MII Status: up
Speed: 1000 Mbps
Duplex: full
Link Failure Count: 0
Permanent HW addr: 00:0c:29:a7:1e:a3
Slave queue ID: 0

[root@os7 ~]# ip a
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN group default qlen 1000
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
valid_lft forever preferred_lft forever
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: eth0: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:a7:1e:99 brd ff:ff:ff:ff:ff:ff
3: eth1: <BROADCAST,MULTICAST,SLAVE,UP,LOWER_UP> mtu 1500 qdisc pfifo_fast master bond0 state UP group default qlen 1000
link/ether 00:0c:29:a7:1e:a3 brd ff:ff:ff:ff:ff:ff
4: bond0: <BROADCAST,MULTICAST,MASTER,UP,LOWER_UP> mtu 1500 qdisc noqueue state UP group default qlen 1000
link/ether 00:0c:29:a7:1e:99 brd ff:ff:ff:ff:ff:ff
inet 192.168.150.100/24 brd 192.168.150.255 scope global noprefixroute bond0
valid_lft forever preferred_lft forever
inet6 fe80::20c:29ff:fea7:1e99/64 scope link
valid_lft forever preferred_lft forever

十二、实现免密登陆脚本, expect登陆远程主机,将生成的密钥写入到目标主机, expect测试远程登陆。

vim expect_ssh.sh
#!/usr/bin/expect
spawn ssh root@192.168.150.150
expect {
"yes/no" { send "yes\n";exp_continue }
"password" { send "123456\n" }
}
interact

十三、通过select来选择功能.例如功能有安装mysql、安装apache以及免密钥登陆主机。

#!/bin/bash
install_appche(){
yum -y install httpd &> /dev/null
echo "appache已经被安装"
}
install_mysql(){
yum -y install mysql &> /dev/null
echo "mysql已经被安装"
}
ssh_nopass(){
HOST="192.168.150.150"
ssh-copy-id 127.0.0.1
rsync -av .ssh $HOST:/root &>/dev/null
}
PS3="请选择相应的编号(1-5): "
MENU='
安装appache
安装mysql
免密登录
全都实现
退出
'
select M in $MENU ;do
case $REPLY in
1)
install_appche
;;
2)
install_mysql
;;
3)
ssh_nopass
;;
4)
 install_mysql
install_appche
ssh_nopass
;;
5)
break
;;
*)
echo "请输入正确的数字"
esac
done
举报

相关推荐

0 条评论