Linux入门-第五周 1、磁盘lvm管理,完成下面要求,并写出详细过程:   1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录   2) 扩展testlv至7G,要求archlinux用户的文件不能丢失   4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能 2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录 3、简述TCP链接建立和断开过程 4、简述TCP和UDP的区别

Linux入门-第五周
1、磁盘lvm管理,完成下面要求,并写出详细过程:    1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
  2) 扩展testlv至7G,要求archlinux用户的文件不能丢失
  4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
3、简述TCP链接建立和断开过程
4、简述TCP和UDP的区别

      准备两个10G的分区

1 [root@Centos7 data]# lsblk -l |grep sdb[0-9]
2 sdb1                  8:17   0  10G  0 part 
3 sdb2                  8:18   0  10G  0 part 

      升级为物理卷

1 [root@Centos7 data]# partprobe /dev/sdb

      创建物理卷

1 [root@Centos7 data]# pvcreate /dev/sdb1 /dev/sdb2
2   Physical volume "/dev/sdb1" successfully created.
3   Physical volume "/dev/sdb2" successfully created.

      创建卷组 指定PE大小

1 [root@Centos7 data]# vgcreate -s 16M testvg /dev/sdb1 /dev/sdb2
2   Volume group "testvg" successfully created

      创建5G的逻辑卷,名称为testlv

1 [root@Centos7 data]# lvcreate -n testlv -L 5G testvg
2   Logical volume "testlv" created.

      查看LV列表

1 [root@Centos7 data]# lvs
2   LV     VG             Attr       LSize  Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
3   data   centos_centos7 -wi-ao---- 20.00g                                                    
4   root   centos_centos7 -wi-ao---- 20.00g                                                    
5   swap   centos_centos7 -wi-ao----  8.00g                                                    
6   testlv testvg         -wi-a-----  5.00g  

      创建文件系统

 1 [root@Centos7 data]# mkfs.ext4 /dev/testvg/testlv 
 2 mke2fs 1.42.9 (28-Dec-2013)
 3 Filesystem label=
 4 OS type: Linux
 5 Block size=4096 (log=2)
 6 Fragment size=4096 (log=2)
 7 Stride=0 blocks, Stripe width=0 blocks
 8 327680 inodes, 1310720 blocks
 9 65536 blocks (5.00%) reserved for the super user
10 First data block=0
11 Maximum filesystem blocks=1342177280
12 40 block groups
13 32768 blocks per group, 32768 fragments per group
14 8192 inodes per group
15 Superblock backups stored on blocks: 
16     32768, 98304, 163840, 229376, 294912, 819200, 884736
17 
18 Allocating group tables: done                            
19 Writing inode tables: done                            
20 Creating journal (32768 blocks): done
21 Writing superblocks and filesystem accounting information: done 

      查看UUID

1 [root@Centos7 data]# blkid /dev/testvg/testlv
2 /dev/testvg/testlv: UUID="800ff8eb-8557-4d7f-9b55-e097f957b431" TYPE="ext4"

      创建一个目录并挂载

1 [root@Centos7 data]# cd /
2 [root@Centos7 /]# mkdir users
3 [root@Centos7 /]# mount /dev/testvg/testlv /users/
4 [root@Centos7 /]# df -Th |grep "/users"
5 /dev/mapper/testvg-testlv       ext4      4.8G   20M  4.6G   1% /users

      设置永久挂载

1 [root@Centos7 /]# vim /etc/fstab 
2 [root@Centos7 /]# cat /etc/fstab |grep "/users"
3 UUID=800ff8eb-8557-4d7f-9b55-e097f957b431 /users    ext4    defaults    0 0 
4 [root@Centos7 /]# 

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

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

 1 [root@Centos7 ~]# useradd archlinux -d /users/archlinux
 2 [root@Centos7 ~]# su - archlinux 
 3 [archlinux@Centos7 ~]$ cp -av /etc/pam.d/ /users/archlinux/
 4 ‘/etc/pam.d/’ -> ‘/users/archlinux/pam.d’
 5 ‘/etc/pam.d/config-util’ -> ‘/users/archlinux/pam.d/config-util’
 6 ‘/etc/pam.d/other’ -> ‘/users/archlinux/pam.d/other’
 7 ‘/etc/pam.d/passwd’ -> ‘/users/archlinux/pam.d/passwd 8 ‘/etc/pam.d/chfn’ -> ‘/users/archlinux/pam.d/chfn’
 9 ‘/etc/pam.d/chsh’ -> ‘/users/archlinux/pam.d/chsh’
10 ‘/etc/pam.d/login’ -> ‘/users/archlinux/pam.d/login11 ‘/etc/pam.d/remote’ -> ‘/users/archlinux/pam.d/remote’
12 ‘/etc/pam.d/runuser’ -> ‘/users/archlinux/pam.d/runuser’
13 ‘/etc/pam.d/runuser-l’ -> ‘/users/archlinux/pam.d/runuser-l’
14 ‘/etc/pam.d/su’ -> ‘/users/archlinux/pam.d/su15 ‘/etc/pam.d/su-l’ -> ‘/users/archlinux/pam.d/su-l’
16 ‘/etc/pam.d/systemd-user’ -> ‘/users/archlinux/pam.d/systemd-user’
17 ‘/etc/pam.d/polkit-1’ -> ‘/users/archlinux/pam.d/polkit-118 ‘/etc/pam.d/crond’ -> ‘/users/archlinux/pam.d/crond’
19 ‘/etc/pam.d/vlock’ -> ‘/users/archlinux/pam.d/vlock’
20 ‘/etc/pam.d/ppp’ -> ‘/users/archlinux/pam.d/ppp’
21 ‘/etc/pam.d/vmtoolsd’ -> ‘/users/archlinux/pam.d/vmtoolsd’
22 ‘/etc/pam.d/xserver’ -> ‘/users/archlinux/pam.d/xserver’
23 ‘/etc/pam.d/pluto’ -> ‘/users/archlinux/pam.d/pluto’
24 ‘/etc/pam.d/cups’ -> ‘/users/archlinux/pam.d/cups’
25 ‘/etc/pam.d/gdm-autologin’ -> ‘/users/archlinux/pam.d/gdm-autologin’
26 ‘/etc/pam.d/gdm-fingerprint’ -> ‘/users/archlinux/pam.d/gdm-fingerprint’
27 ‘/etc/pam.d/gdm-launch-environment’ -> ‘/users/archlinux/pam.d/gdm-launch-environment’
28 ‘/etc/pam.d/gdm-password’ -> ‘/users/archlinux/pam.d/gdm-password’
29 ‘/etc/pam.d/gdm-pin’ -> ‘/users/archlinux/pam.d/gdm-pin’
30 ‘/etc/pam.d/gdm-smartcard’ -> ‘/users/archlinux/pam.d/gdm-smartcard’
31 ‘/etc/pam.d/liveinst’ -> ‘/users/archlinux/pam.d/liveinst’
32 ‘/etc/pam.d/sshd’ -> ‘/users/archlinux/pam.d/sshd’
33 ‘/etc/pam.d/setup’ -> ‘/users/archlinux/pam.d/setup’
34 ‘/etc/pam.d/smtp.postfix’ -> ‘/users/archlinux/pam.d/smtp.postfix’
35 ‘/etc/pam.d/smtp’ -> ‘/users/archlinux/pam.d/smtp’
36 ‘/etc/pam.d/atd’ -> ‘/users/archlinux/pam.d/atd’
37 ‘/etc/pam.d/sudo’ -> ‘/users/archlinux/pam.d/sudo38 ‘/etc/pam.d/sudo-i’ -> ‘/users/archlinux/pam.d/sudo-i’
39 ‘/etc/pam.d/system-auth-ac’ -> ‘/users/archlinux/pam.d/system-auth-ac’
40 ‘/etc/pam.d/system-auth’ -> ‘/users/archlinux/pam.d/system-auth’
41 ‘/etc/pam.d/postlogin-ac’ -> ‘/users/archlinux/pam.d/postlogin-ac’
42 ‘/etc/pam.d/postlogin’ -> ‘/users/archlinux/pam.d/postlogin’
43 ‘/etc/pam.d/password-auth-ac’ -> ‘/users/archlinux/pam.d/password-auth-ac’
44 ‘/etc/pam.d/password-auth’ -> ‘/users/archlinux/pam.d/password-auth’
45 ‘/etc/pam.d/fingerprint-auth-ac’ -> ‘/users/archlinux/pam.d/fingerprint-auth-ac’
46 ‘/etc/pam.d/fingerprint-auth’ -> ‘/users/archlinux/pam.d/fingerprint-auth’
47 ‘/etc/pam.d/smartcard-auth-ac’ -> ‘/users/archlinux/pam.d/smartcard-auth-ac’
48 ‘/etc/pam.d/smartcard-auth’ -> ‘/users/archlinux/pam.d/smartcard-auth’
49 [archlinux@Centos7 ~]$ ls /users/archlinux/pam.d/ | wc -l
50 44
51 [archlinux@Centos7 ~]$ 
View Code

      查看VG是否有足够可用空间

1 [archlinux@Centos7 ~]$ su root
2 Password: 
3 [root@Centos7 archlinux]# vgs
4   VG             #PV #LV #SN Attr   VSize   VFree  
5   centos_centos7   1   3   0 wz--n-  48.00g   4.00m
6   testvg           2   1   0 wz--n- <19.97g <14.97g

      查看逻辑卷大学

1 [root@Centos7 archlinux]# lvs |grep "testlv"                                                
2   testlv testvg         -wi-ao----  5.00g 

       扩展逻辑卷大小至7G

1 [root@Centos7 archlinux]# lvextend -L +2G -r /dev/testvg/testlv
2   Size of logical volume testvg/testlv changed from 5.00 GiB (320 extents) to 7.00 GiB (448 extents).
3   Logical volume testvg/testlv successfully resized.
4 resize2fs 1.42.9 (28-Dec-2013)
5 Filesystem at /dev/mapper/testvg-testlv is mounted on /users; on-line resizing required
6 old_desc_blocks = 1, new_desc_blocks = 1
7 The filesystem on /dev/mapper/testvg-testlv is now 1835008 blocks long.

      查看当前逻辑卷和物理卷大小

1 [root@Centos7 archlinux]# lvs |grep "testlv"
2   testlv testvg         -wi-ao----  7.00g                                                    
3 [root@Centos7 archlinux]# df -Th |grep "testlv"
4 /dev/mapper/testvg-testlv       ext4      6.8G   23M  6.4G   1% /users

      查看archlinux账户pam.d目录下文件个数

1 [root@Centos7 archlinux]# ls /users/archlinux/pam.d | wc -l  
2 44

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

         先取消挂载,使之处于离线状态

1 [root@Centos7 ~]# umount /dev/testvg/testlv 

        设置文件系统大小

1 [root@Centos7 ~]# resize2fs /dev/testvg/testlv 3G
2 resize2fs 1.42.9 (28-Dec-2013)
3 Resizing the filesystem on /dev/testvg/testlv to 786432 (4k) blocks.
4 The filesystem on /dev/testvg/testlv is now 786432 blocks long.
5 
6 [root@Centos7 ~]# 

        缩减逻辑卷大小,并查看

1 [root@Centos7 ~]# lvreduce -L 3G /dev/testvg/testlv
2   WARNING: Reducing active logical volume to 3.00 GiB.
3   THIS MAY DESTROY YOUR DATA (filesystem etc.)
4 Do you really want to reduce testvg/testlv? [y/n]: y
5   Size of logical volume testvg/testlv changed from 7.00 GiB (448 extents) to 3.00 GiB (192 extents).
6   Logical volume testvg/testlv successfully resized.
7 [root@Centos7 ~]# lvs |grep "testlv"
8   testlv testvg         -wi-a-----  3.00g                                                    
9 [root@Centos7 ~]#

        挂载后,查看物理卷大小,查看pam.d目录文件个数

1 [root@Centos7 ~]# mount /dev/testvg/testlv /users
2 [root@Centos7 ~]# df -Th |grep "/users"
3 /dev/mapper/testvg-testlv       ext4      2.9G   16M  2.7G   1% /users
4 [root@Centos7 ~]# ls /users/archlinux/pam.d/ | wc -l
5 44                                      #文件个数没变。表示没丢失数据。登录用户也正常
6 [root@Centos7 ~]# su archlinux
7 [archlinux@Centos7 root]$ 

  4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能

         创建大小为1G的只读快照,并查看。

1 [root@Centos7 ~]# lvcreate -L 1G -s -n testsnap -p r /dev/testvg/testlv 
2   Logical volume "testsnap" created.
3 [root@Centos7 ~]# lvs |grep "test"
4   testlv   testvg         owi-aos---  3.00g                                                    
5   testsnap testvg         sri-a-s---  1.00g      testlv 0.01                                   
6 [root@Centos7 ~]#

        创建快照目录并挂载

1 [root@Centos7 ~]# mkdir /users/testsnap
2 [root@Centos7 ~]# mount /dev/testvg/testsnap /users/testsnap/
3 mount: /dev/mapper/testvg-testsnap is write-protected, mounting read-only
4 [root@Centos7 ~]# 

        删除pam.d目录下的g开头文件并查看剩余文件个数,与快照中的文件作对比

1 [root@Centos7 ~]# rm -f /users/archlinux/pam.d/g*
2 [root@Centos7 ~]# ls /users/archlinux/pam.d/ |wc -l
3 38
4 [root@Centos7 ~]# ls /users/testsnap/archlinux/pam.d/ |wc -l
5 44
6 [root@Centos7 ~]# 

        取消挂载,在还原快照文件后查看文件个数。

1 [root@Centos7 ~]# umount /users/testsnap/
2 [root@Centos7 ~]# umount /users
3 [root@Centos7 ~]# cd /users/
4 [root@Centos7 users]# tar -zxf /tmp/backup.tar.gz 
5 [root@Centos7 users]# ls users/testsnap/archlinux/pam.d/ |wc -l
6 44                        
7 [root@Centos7 users]#

2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录

      创建raid1 并创建挂载点和文件系统 

 1 [root@Centos7 ~]# lsblk |grep "sdb"
 2 sdb                       8:16   0   20G  0 disk 
 3 ├─sdb1                    8:17   0  512M  0 part 
 4 ├─sdb2                    8:18   0  512M  0 part 
 5 └─sdb3                    8:19   0  512M  0 part 
 6 [root@Centos7 ~]# mdadm -C /dev/md0 -l 1 -n 2 /dev/sdb{1,2} -x 1 /dev/sdb3
 7 mdadm: Note: this array has metadata at the start and
 8     may not be suitable as a boot device.  If you plan to
 9     store '/boot' on this device please ensure that
10     your boot-loader understands md/v1.x metadata, or use
11     --metadata=0.90
12 Continue creating array? 
13 Continue creating array? (y/n) y
14 mdadm: Defaulting to version 1.2 metadata
15 mdadm: array /dev/md0 started.
16 [root@Centos7 ~]# mkdir /backup
17 [root@Centos7 ~]# mkfs.ext4 /dev/md0 
18 mke2fs 1.42.9 (28-Dec-2013)
19 Filesystem label=
20 OS type: Linux
21 Block size=1024 (log=0)
22 Fragment size=1024 (log=0)
23 Stride=0 blocks, Stripe width=0 blocks
24 131072 inodes, 523264 blocks
25 26163 blocks (5.00%) reserved for the super user
26 First data block=1
27 Maximum filesystem blocks=34078720
28 64 block groups
29 8192 blocks per group, 8192 fragments per group
30 2048 inodes per group
31 Superblock backups stored on blocks: 
32     8193, 24577, 40961, 57345, 73729, 204801, 221185, 401409
33 
34 Allocating group tables: done                            
35 Writing inode tables: done                            
36 Creating journal (8192 blocks): done
37 Writing superblocks and filesystem accounting information: done 
38 
39 [root@Centos7 ~]# 

      设置永久挂载

1 [root@Centos7 ~]# blkid /dev/md0
2 /dev/md0: UUID="7708add9-f5c8-48d0-9547-b127f773fbf1" TYPE="ext4" 
3 [root@Centos7 ~]# vim /etc/fstab 
4 [root@Centos7 ~]# mount -a
5 [root@Centos7 ~]# cat /etc/fstab |grep "backup"
6 UUID=7708add9-f5c8-48d0-9547-b127f773fbf1 /backup    ext4    defaults    0 0 
7 [root@Centos7 ~]# 

3、简述TCP链接建立和断开过程

  TCP会话的建立

    由于TCP是一个面向连接的协议,发送数据前需要先和接收者提前建立连接,该连接通常称为“会话”。TCP通过三次握手的可靠性机制来建立会话,所谓三次握手是指在TCP会话的建立过程中,总共交换3个TCP控制报文,通过这3个控制报文,保证了TCP会话建立过程的可靠性。TCP三次握手建立过程如下图所示。

Linux入门-第五周
1、磁盘lvm管理,完成下面要求,并写出详细过程:    1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
  2) 扩展testlv至7G,要求archlinux用户的文件不能丢失
  4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
3、简述TCP链接建立和断开过程
4、简述TCP和UDP的区别

    图中假设现在主机A需要向主机B发送TCP数据,首先由主机A发起会话建立,向主机B发送一个设置“SYN”标志位的TCP控制报文,表示想和主机B建立会话连接,报文中的SEQ序列号字段会填充一个0~216范围内的随机数(只有SYN标志位置位的TCP报文才会填充一个随机数),图中的SEQ序列号用0表示。

    主机B收到SYN置位的TCP报文后,知道有人想和自己建立连接,主机B接收SYN报文并向主机A回复一个同时设置了“SYN”和“ACK”标志位的TCP报文,其中的“ACK”表示主机B同意和主机A建立连接,并确认主机A发送的“SYN”报文。而“SYN”表示主机B同时想和主机A建立一个会话连接,这是因为TCP协议是全双工模式,建立一个会话可以实现数据的双向发送。

    报文中的SEQ序列号字段填充一个0~216范围内的随机数,主机B发送的序列号同样用0表示。而确认序列号=接收到的序列+数据长度,有于TCP协议中的控制报文的数据长度也算作一个字节,所以图中的ACK SEQ为1(0+1)。通过确认序列号可以统计出已接收的数据总长度。如上图所示。

    主机A收到主机B发送的“SYN+ACK”后,回复一个“ACK”置位的TCP报文进行确认,回复的ACK报文中,SEQ序列号字段位1(0+1),由于主机A之前发送的SYN报文中的序列号为0,并且已经发送过一个字节数据(SYN报文),所以现在的SEQ序列号为1。通过序列号字段可以统计出发送者已发送的数据总长度。ACK SEQ确认序列号=主机B的发送序列号+数据长度(1=0+1),经过三次握手之后,主机A和主机B建立了两个TCP会话,最终实现数据的双向发送。

  TCP会话的终止

      TCP会话的终止需要经过四次握手断开连接,原因是TCP的会话是双向的,会话两端独立的发送和接收数据,那么终止会话就需要双向断开连接,例如下图所示,主机A和主机B建立TCP会话后两端都开始发送TCP数据,如果现在主机A的数据发送完了,主机A向主机B提出断开连接,这只是单方向的行为,只会断开主机A到主机B的连接,而主机B到主机A的连接环还保持正常,主机B还可以向主机A继续发送数据,如果现在主机B的数据也发送完了,主机B向主机A提出断开连接,连接双向断开后TCP会话终止,TCP协议四次握手终止会话如下图所示。

      下图中,主机A向主机B发送完数据后,主机A断开和主机B的连接,主机A向主机B发送一个FIN置位的TCP控制报文,主机B收到FIN报文后,回复ACK报文确认收到的FIN。由于主机B也没有数据再发送给主机A,随后主机B也向主机A发送一个FIN置位的TCP控制报文,断开和主机A的连接。主机A收到FIN报文后,回复ACK报文确认收到的FIN。

Linux入门-第五周
1、磁盘lvm管理,完成下面要求,并写出详细过程:    1) 创建一个至少有两个PV组成的大小为20G的名为testvg的VG;要求PE大小 为16MB, 而后在卷组中创建大小为5G的逻辑卷testlv;挂载至/users目录
  2) 扩展testlv至7G,要求archlinux用户的文件不能丢失
  4) 对testlv创建快照,并尝试基于快照备份数据,验证快照的功能
2、创建一个可用空间为1G的RAID1设备,文件系统为ext4,有一个空闲盘,开机可自动挂载至/backup目录
3、简述TCP链接建立和断开过程
4、简述TCP和UDP的区别

4、简述TCP和UDP的区别

 

    TCP---传输控制协议,提供的是面向连接、可靠的字节流服务。当客户和服务器彼此交换数据前,必须先在双方之间建立一个TCP连接,之后才能传输数据。TCP提供超时重发,丢弃重复数据,检验数据,流量控制等功能,保证数据能顺序地从一端传到另一端。
    UDP---用户数据报协议,是一个简单的面向数据报的运输层协议。UDP不提供可靠性,它只是把应用程序传给IP层的数据报发送出去,但是并不能保证它们能到达目的地。由于UDP在传输数据报前不用在客户和服务器之间建立一个连接,且没有超时重发等机制,不保证数据按顺序传递,故而传输速度很快。