一、磁盘lvm管理,完成下面要求,并写出详细过程:
- 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
1. 确定使用哪些设备创建pv 这里将 /dev/sda设备 分区 sda6 大小20G /dev/sdc 分区 sdc2 大小20G
[root@centos7 ~ 11:01:07]#pvcreate /dev/sda6 /dev/sdc2
Physical volume "/dev/sda6" successfully created.
Physical volume "/dev/sdc2" successfully created.
2. 加入卷组VG中
[root@centos7 ~ 11:24:46]#vgcreate testvg -s 16M /dev/sda6 /dev/sdc2
Volume group "testvg" successfully created
3. 创建大小为5G的逻辑卷
[root@centos7 ~ 11:25:26]#lvcreate -n testlv -L 5G testvg
Logical volume "testlv" created.
4. 创建文件系统
[root@centos7 ~ 11:50:26]#mkfs.ext4 /dev/mapper/testvg-testlv
mke2fs 1.42.9 (28-Dec-2013)
Filesystem label=
OS type: Linux
Block size=4096 (log=2)
Fragment size=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
786432 inodes, 3145728 blocks
157286 blocks (5.00%) reserved for the super user
First data block=0
Maximum filesystem blocks=2151677952
96 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208
Allocating group tables: done
Writing inode tables: done
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done
5. 挂载使用
[root@centos7 ~ 11:28:54]#mkdir /users
[root@centos7 ~ 11:29:59]#mount /dev/testvg/testlv /users
6. 查询确认挂载:
[root@centos7 ~ 11:30:10]#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 50G 3.8G 47G 8% /
devtmpfs 896M 0 896M 0% /dev
tmpfs 911M 0 911M 0% /dev/shm
tmpfs 911M 27M 885M 3% /run
tmpfs 911M 0 911M 0% /sys/fs/cgroup
/dev/sda3 30G 4.1G 26G 14% /data
/dev/sda1 1014M 165M 850M 17% /boot
tmpfs 183M 36K 183M 1% /run/user/0
/dev/sr1 8.8G 8.8G 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/testvg-testlv 5.0G 33M 5.0G 1% /users
- 扩展testlv至7G,要求archlinux用户的文件不能丢失
扩展逻辑卷 testlv到7G大小:
[root@centos7 ~ 12:32:19]#lvextend -L 7G /dev/testvg/testlv
Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
Logical volume testvg/testlv successfully resized.
扩展文件系统到7G :
[root@centos7 ~ 12:32:58]#resize2fs /dev/testvg/testlv
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/testvg/testlv to 1835008 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 1835008 blocks long.
确认:
[root@centos7 ~ 12:34:51]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 52403200 3965736 48437464 8% /
devtmpfs 916724 0 916724 0% /dev
tmpfs 932652 0 932652 0% /dev/shm
tmpfs 932652 27068 905584 3% /run
tmpfs 932652 0 932652 0% /sys/fs/cgroup
/dev/sda3 31441920 4280796 27161124 14% /data
/dev/sda1 1038336 168556 869780 17% /boot
tmpfs 186532 36 186496 1% /run/user/0
/dev/sr1 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/testvg-testlv 7093752 36888 6720688 1% /mnt
- 收缩testlv至3G,要求archlinux用户的文件不能丢失
取消挂载
[root@centos7 ~ 12:34:51]#umount /dev/testvg/testlv
执行fsck检查
[root@centos7 ~ 12:36:20]#e2fsck -f /dev/testvg/testlv
e2fsck 1.42.9 (28-Dec-2013)
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Checking reference counts
Pass 5: Checking group summary information
/dev/testvg/testlv: 11/458752 files (0.0% non-contiguous), 70792/1835008 blocks
缩减文件系统大小
[root@centos7 ~ 12:37:13]#resize2fs /dev/testvg/testlv 3G
resize2fs 1.42.9 (28-Dec-2013)
Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
The filesystem on /dev/testvg/testlv is now 786432 blocks long.
缩减逻辑卷的大小:
[root@centos7 ~ 12:40:05]#lvreduce -L 3G /dev/testvg/testlv
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce testvg/testlv? [y/n]: y
Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
Logical volume testvg/testlv successfully resized.
重新挂载并确认:
[root@centos7 ~ 12:40:59]#mount /dev/testvg/testlv /mnt
[root@centos7 ~ 12:41:50]#df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/sda2 52403200 3965628 48437572 8% /
devtmpfs 916724 0 916724 0% /dev
tmpfs 932652 0 932652 0% /dev/shm
tmpfs 932652 27068 905584 3% /run
tmpfs 932652 0 932652 0% /sys/fs/cgroup
/dev/sda3 31441920 4280796 27161124 14% /data
/dev/sda1 1038336 168556 869780 17% /boot
tmpfs 186532 36 186496 1% /run/user/0
/dev/sr1 9176232 9176232 0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/testvg-testlv 2965264 24600 2787228 1% /mnt
[root@centos7 ~ 12:41:51]#lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
testlv testvg -wi-ao---- 3.00g
- 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
创建快照:
[root@centos7 ~ 12:41:59]#lvcreate -n testlv_snap -s -p r -L 1G /dev/testvg/testlv
Logical volume "testlv_snap" created.
确认是否创建成功:
--- Logical volume ---
LV Path /dev/testvg/testlv_snap
LV Name testlv_snap
VG Name testvg
LV UUID ISeZeZ-kbZ8-alNz-tEhA-Djz3-tR66-R0oYrO
LV Write Access read only
LV Creation host, time centos7.localdomain, 2019-08-04 12:44:23 +0800
LV snapshot status active destination for testlv
LV Status available
# open 0
LV Size 3.00 GiB
Current LE 192
COW-table size 1.00 GiB
COW-table LE 64
Allocated to snapshot 0.01%
Snapshot chunk size 4.00 KiB
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 8192
Block device 253:3
挂载快照并测试:
[root@centos7 ~ 12:45:44]#mkdir /mnt/snap
[root@centos7 ~ 12:46:42]#mount /dev/testvg/testlv_snap /mnt/snap
mount: /dev/mapper/testvg-testlv_snap is write-protected, mounting read-only
创建快照以前, 逻辑卷挂载到 /mnt/lv_data下,有以下文件:
[root@centos7 lv_data 12:52:18]#ll
total 32
-rw-r--r--. 1 root root 807 Aug 4 12:52 fstab
-rw-r--r--. 1 root root 23 Aug 4 12:52 issue
drwx------. 2 root root 16384 Aug 4 11:51 lost+found
-r--r--r--. 1 root root 3091 Aug 4 12:52 mtab
-rw-r--r--. 1 root root 1820 Aug 4 12:52 profile
在创建快照后,清空逻辑卷中的文件fstab, 而快照中的文件不会被删除:
[root@centos7 snap 12:55:44]#echo '' > /mnt/lv_data/fstab
[root@centos7 snap 12:55:56]#cat /mnt/lv_data/fstab
[root@centos7 snap 12:56:02]#cat /mnt/snap/fstab
#
# /etc/fstab
# Created by anaconda on Sat Jun 15 07:41:25 2019
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
...
二、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
使用sdb1 和sdc1 作为RAID,sda7 分区作为spare 空闲盘
[root@centos6 ~ 14:28:22]#mdadm -C -a yes /dev/md0 -l 1 -n 2 -x 1 -c 1M /dev/sd{b1,c1,a7}
-x 是指定备用硬盘个数 , 写在最后的就是备用盘了
-c 是指定chunk 大小
-l 是指定RAID级别
-n RAID下激活成员的个数
查看信息:
[root@centos6 ~ 14:33:37]#mdadm -D /dev/md0
创建文件系统并挂载:
[root@centos6 ~ 14:35:23]#mkfs.ext4 /dev/md0
[root@centos6 ~ 14:49:57]#blkid |grep /dev/md
/dev/md0: UUID="a40565a1-6e57-4e1a-a29c-d7928746f4b7" TYPE="ext4"
[root@centos6 ~ 14:49:37]#sed -i.bak '$aUUID=a40565a1-6e57-4e1a-a29c-d7928746f4b7 /mnt/raid ext4 defaults 0 0' /etc/fstab
[root@centos6 ~ 14:49:48]#mount -a
[root@centos6 ~ 14:50:34]#df -h
Filesystem Size Used Avail Use% Mounted on
/dev/sda2 48G 6.6G 39G 15% /
tmpfs 490M 76K 490M 1% /dev/shm
/dev/sda1 976M 34M 892M 4% /boot
/dev/sda3 29G 645M 27G 3% /data
/dev/sr0 3.8G 3.8G 0 100% /media/CentOS_6.10_Final
/data/ext4file 93M 1.6M 87M 2% /mnt/ext4
/dev/mapper/vg0-lv_mysql
7.8G 18M 7.4G 1% /mnt/mysql
/dev/mapper/vg0-lv_mysql_snap
7.8G 19M 7.4G 1% /mnt/snap
/dev/md0 987M 1.3M 934M 1% /mnt/raid
查询确认:
[root@centos6 ~ 14:52:18]#mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Sun Jul 28 14:31:32 2019
Raid Level : raid1
Array Size : 1059200 (1034.38 MiB 1084.62 MB)
Used Dev Size : 1059200 (1034.38 MiB 1084.62 MB)
Raid Devices : 2
Total Devices : 3
Persistence : Superblock is persistent
Update Time : Sun Jul 28 14:49:55 2019
State : clean
Active Devices : 2
Working Devices : 3
Failed Devices : 0
Spare Devices : 1
Name : centos6.localdomain:0 (local to host centos6.localdomain)
UUID : 6be07abf:7c7a13d7:c64afebe:fbfa77d7
Events : 17
Number Major Minor RaidDevice State
0 8 17 0 active sync /dev/sdb1
1 8 33 1 active sync /dev/sdc1
2 8 7 - spare /dev/sda7
三、简述TCP链接建立和断开过程
TCP建立连接的三次握手:
- 客户端A向服务器B发送同步报文SYN=1 ,数据报文 seq=0 (相对序列号为0,说明是第一次请求通信)。发送完同步报文,A由CLOSED状态变更为SYN-SENT
- 服务端B在端口上侦听客户端的发送请求,一直处于LISTEN状态,当监听到A发送过来的同步报文时SYN=1,立刻发送回应测试报文给A: SYN=1 ACK=1 ,ACK=1表示A发来的同步报文咱B收到了,此时B回应完后状态由LISTEN切换为SYN-RCVD。同时发A的数据报文段序号 seq=0 , ack=1。ack为1 表示 A发来的序号为0的数据报文段收到了,希望下次收到序号为1的报文,同时B给A回应序号为0的数据报文段(首次给A发送,相对序号)。
- 当客户端A再次收到服务端B发来的报文时,即可确认双方是可以正常连接的,于是状态切换为ESTABLISHED,并再次发送确认同步报文给B,即
ACK=1,seq=1,ack=1 , B服务端收到后,状态切换为ESTABLISED,于是之后双方开始正常的数据传输。
TCP的四次挥手:
- 客户端最初在ESTABLISHED状态下,主动向服务端B发出断开连接请求, FIN=1 ,seq=u .状态切换为 FIN-WAIT1 终止等待1
- 服务端收到A发来的断开连接请求,回应报文 ACK=1 , ack=u+1 , seq=v , 意思是确认客户端发来的断开请求收到了。并将状态切换为关闭等待状态CLOSE-WAIT
- 大部分情况下,之后的A不会立刻断开连接,而是切换到FIN-WAIT2,也即终止等待2的状态下,这时B开始传送数据给A,可以理解为是分手前的财产归还,发送完数据后,此时再向A发送确认断开请求, FIN=1 , ACK=1 , seq=w , ack=u+1 , B状态切换为LAST-ACK ,即最后确认
- A收到B的确认请求后,回应ACK=1 ack=w+1 seq=u+1 ,回应玩,A状态切换到TIME-WAIT,再等待2MSL的时间,A正式关闭连接,状态为CLOSED。B收到A的回应后,不再回应任何数据,直接状态切换为CLOSED。至此,双方通过4次挥手完成了通信的终止
四、简述TCP和UDP的区别
TCP和UDP都工作在传输层,但是它们有较大的差异:
区别一:
TCP 叫做传输控制协议 是面向连接的。也就是通信双方在利用某个协议传输数据以前,先发送测试报文来确认双方网络是正常连接的
UDP 叫做用户数据报协议 非面向连接的。即源端主机只管发送数据,而不管对端主机是否能接收到
区别二:
TCP 协议下。每一个数据包都是有次序的。也就是对于大文件将被切割成小的数据包进行传输,会按照顺序进行编号。到目标主机能精确的还原,数据传输可靠
UDP是无序的, 不对数据进行排序和编号,这样有可能出现先发送的数据包对方主机后收到。这样在目标主机端组合完的数据可能是不可靠的
区别三:
基于两种协议的特性,用途不一:
TCP 对数据可靠性要求高 所以适用于 邮件 文件共享 文件的下载
UDP 不保证数据的可靠性, 适用于音频和视频传输。即便丢失一点数据也是在可接受范围内的