运维学习第九天

时间:2020-12-01 14:39:06

###########################

##第四单元.管理系统存储##

###########################

 

主分区+逻辑分区总个数不能超过15

一般分区时,分三个主分区,第四个为扩展分区(容器),给其分配剩余所有空间

 

###1.分区的划分####

 

fdisk /dev/vdb ##进入分区划分

partprobe ##加载分区表

cat /proc/partitions ##查看分区信息

mkfs.xfs ##格式化分区=创建xfs文件系统

blkid ##查看文件系统类型

 运维学习第九天

mount  /dev/vdb1  挂载点  ##分区挂载

umount  /dev/vdb1  挂载点  ##卸载挂载

vim /etc/fstab ##实现永久挂载

/dev/vdb1   挂载点   文件系统类型(xfs)  defaults  0  0

mount  -a

df ##查看已挂载的分区

 运维学习第九天

####2.swap分区管理####

 

swapon -s ##查看系统中的swap分区

建立swap分区

mkswap  /dev/vdb1 ##把/dev/vdb1格式化为swap分区

swapon  -a  /dev/vdb1 ##激活

上述激活方式,重启后激活消失,如需永久激活,需要修改配置文件

vim /etc/fstab ##开机自动激活

/dev/vdb1 swap swap defaults  0  0

设备 挂载点 文件系统类型      

 运维学习第九天运维学习第九天

swapoff  /dev/vdb1 ##关闭激活的swap分区

 运维学习第九天运维学习第九天

添加临时swap分区

dd if=/dev/zero of=/mnt/swapfilename  bs=1M count=1000 ##在/mnt中划分一块名为swapfile的分区,块大小为1M,数量为1000

mkswap /dev/vdb1 ##格式化swap格式

swapon -a /dev/vdb1 ##激活

 

 

 

[root@station mnt]# fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).

 

Changes will remain in memory only, until you decide to write them.

Be careful before using the write command.

 

Device does not contain a recognized partition table

Building a new DOS disklabel with disk identifier 0xa1575c6c.

 

Command (m for help): m

Command action

   a   toggle a bootable flag

   b   edit bsd disklabel

   c   toggle the dos compatibility flag

   d   delete a partition ##删除分区

   g   create a new empty GPT partition table

   G   create an IRIX (SGI) partition table

   l   list known partition types ##列出系统可用的分区类型

   m   print this menu

   n   add a new partition ##新建分区

   o   create a new empty DOS partition table

   p   print the partition table ##显示分区

   q   quit without saving changes ##退出

   s   create a new empty Sun disklabel

   t   change a partition's system id

   u   change display/entry units

   v   verify the partition table

   w   write table to disk and exit ##保存更改到分区表中

   x   extra functionality (experts only)

 

Command (m for help): n ##选择新建分区

Partition type:

   p   primary (0 primary, 0 extended, 4 free) ##分区类型为主分区

   e   extended ##分区类型为扩展分区

Select (default p):  ##默认为主分区

Using default response p

Partition number (1-4, default 1): 1 ##主分区id

First sector (2048-20971519, default 2048):  ##此分区起始位置(一般为默认)

Using default value 2048

Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +100M  ##分区大小

Partition 1 of type Linux and of size 100 MiB is set

 

Command (m for help): p

 

Disk /dev/vdb: 10.7 GB, 10737418240 bytes, 20971520 sectors

Units = sectors of 1 * 512 = 512 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk label type: dos

Disk identifier: 0xa1575c6c

 

   Device Boot      Start         End      Blocks   Id  System

/dev/vdb1            2048      206847      102400   83  Linux

 

Command (m for help): wq ##保存退出,若输入为q表示放弃更改退出

The partition table has been altered!

 

[root@station mnt]# partprobe

[root@station mnt]# cat /proc/partitions ##同步分区表

major minor  #blocks  name

 

 253        0   10485760 vda

 253        1   10484142 vda1

 253       16   10485760 vdb

 253       17     102400 vdb1

 

文件类型:

vfat

ntfs

ext:日志文件系统,最大分区为32T

xfs:最大分区为18eb,1eb=1024t,最快吞吐速度可达8G/s

后两者Windows不识别

 

mkfs.xfs /dev/vdb5 ##格式化

mount /dev/vdb5 /mnt ##挂载

 

####3.磁盘加密###

 

fdisk /dev/vdb

cryptsetup luksFormat /dev/vdb1 ##对vdb1进行luks加密

cryptsetup open /dev/vdb1 westos ##打开加密锁,并对其给予一个新的名字

mkfs.xfs /dev/mapper/westos ##对其进行格式化

mount  /dev/mapper/westos  /mnt ##对westos进行挂载

umount  /mnt/ ##:执行此操作时,应该不在/mnt目录下,否则会提醒设备正在被使用的警告或报错

cryptsetup close westos ##对westos进行关闭(即上锁)

 运维学习第九天

#####加密磁盘的永久挂载####

 

vim /etc/crypttab  ##此文件的作用相当于使系统执行cryptsetup open /dev/vdb1 westos的这条命令

内容如下:

格式为: 解密后设备管理文件 设备 加密字符(密码)存放文件

Westos  /dev/vdb1 /root/diskpass

 

vim /root/diskpass##密码所存放的文件

内容为:huyanchong ##自己所设置的密码

 

chmod 600 /root/diskpass ##给予文件600的权限

cryptsetup luksAddKey /dev/vdb1 /root/diskpass   ##将磁盘和密码文件链接对应起来

Enter any passphrase:  ##执行上条连接命令时需要输入密码

vim /etc/fstab

内容为:

/dev/mapper/redhat /mnt  xfs defaults 0  0

执行完上述命令后reboot虚拟机后,执行df命令,便可以看到效果(即此时设备已经被挂载)

 运维学习第九天运维学习第九天

#####加密清除#####

 

vim /etc/fstab  ##进入/etc/fstab文件删除在第2步中写入的行

> /etc/crypttab  ##删除/etc/crypttab文件

rm -fr /root/lukspsfile ##删除mima存放的文件

umount /mnt ##卸载/mnt

cryptsetup close westos ##关闭磁盘  此步骤一定要做

mkfs.xfs /dev/vdb1 ##格式化磁盘(此时会提醒报错,必须使用-f进行强行格式化)

mkfs.xfs: /dev/vdb1 appears to contain an existing filesystem (crypto_LUKS).

mkfs.xfs: Use the -f option to force overwrite.

 

mkfs.xfs /dev/vdb1 -f

meta-data=/dev/vdb1              isize=256    agcount=4, agsize=65536 blks

         =                       sectsz=512   attr=2, projid32bit=1

         =                       crc=0

data     =                       bsize=4096   blocks=262144, imaxpct=25

         =                       sunit=0      swidth=0 blks

naming   =version 2              bsize=4096   ascii-ci=0 ftype=0

log      =internal log           bsize=4096   blocks=2560, version=2

         =                       sectsz=512   sunit=0 blks, lazy-count=1

realtime =none                   extsz=4096   blocks=0, rtextents=0

操作完成,加密清除!!!

 

#####4.磁盘阵列####

 

fdisk /dev/vdb

mdadm -C /dev/md0 -a yes -l 1 -n 2 -x 1 /dev/vdb{1..3}

mkfs.xfs /dev/md0

mount /dev/md0 /mnt

监控命令:

watch -n 1 cat /proc/mdstat;echo ===; df -h

 运维学习第九天

卸载磁盘阵列:

mdadm -f /dev/md0 /dev/vdb1 ##破坏磁盘阵列md0中的vdb1磁盘

mdadm -D /dev/md0 ##查看正在使用的磁盘

mdadm -r /dev/md0 /dev/vdb1 ##删除磁盘阵列中的vdb1磁盘

mdadm -a /dev/md0 /dev/vdb1 ##

umount /mnt

mdadm -S /dev/md0 ##停止使用磁盘阵列

 运维学习第九天

 

 

####5.配额###

 

fdisk /dev/vdb

mkdir /pub

mount /dev/vdb1 /pub

 mkfs.xfs /dev/vdb1 -f

chmod 1777 /pub ##给予目录/pub的权限为1777

mount -o usrquota /dev/vdb1 /pub

quotaon -uv /dev/vdb1 ##激活配额

edquota -u username ##给用户分配配额

内容如下:

Disk quotas for user student (uid 1000):

  Filesystem                   blocks(事实)      soft     hard       inodes     soft(事实)  hard

  /dev/vdb1                     0          0     102400          0        0        0

即除了修改第一个hard,其余参数不用修改

 

su - username ##切换用户

切换用户后执行:

dd if=/dev/zero of=/pub/file bs=1M count=10

dd if=/dev/zero of=/pub/file bs=1M count=100

dd if=/dev/zero of=/pub/file bs=1M count=101

quota ##查看用户被分配的配额

 运维学习第九天运维学习第九天运维学习第九天

:

fdisk /dev/vdb

Welcome to fdisk (util-linux 2.23.2).

 

Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +500M

 

[root@localhost ~]# mkdir /pub

[root@localhost ~]# mount /dev/vdb1 /pub

mount: unknown filesystem type 'linux_raid_member' ##报错原因:因为此磁盘在上一布用于磁盘阵列,所以格式化时应该加-f

[root@localhost ~]# mkfs.xfs /dev/vdb1 -f

[root@localhost ~]# chmod 1777 /pub ##给予目录/pub的权限为1777

 

 

[root@localhost ~]# mount -o usrquota /dev/vdb1 /pub

[root@localhost ~]# quotaon -uv /dev/vdb1 ##激活配额

quotaon: Enforcing user quota already on /dev/vdb1

[root@localhost ~]# edquota -u username ##给用户分配配额

 

[root@localhost ~]# su - username ##切换用户

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=10

10+0 records in

10+0 records out

10485760 bytes (10 MB) copied, 0.0227461 s, 461 MB/s

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=100

100+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 1.23691 s, 84.8 MB/s

[student@localhost ~]$ dd if=/dev/zero of=/pub/file bs=1M count=101

dd: error writing ‘/pub/file’: Disk quota exceeded ##报错原因:超过root用户给分配的配额

101+0 records in

100+0 records out

104857600 bytes (105 MB) copied, 0.640045 s, 164 MB/s

[student@localhost ~]$ quota ##查看用户被分配的配额

Disk quotas for user student (uid 1000): 

     Filesystem  blocks   quota   limit   grace   files   quota   limit   grace

      /dev/vdb1  102400*      0  102400      

 

#####自动挂载配额分区####

/dev/vdb1       /mnt    xfs     defaults,usrquota       0  0

文件内容编写不正确,则重启会报错,此时,修改文件,当修改完后,重启则又可以正常启

 

 

 

 

#############################################

#############第五单元lvm管理###############

#############################################

1.lvm名词

lvm 逻辑卷,可以让设备*伸缩的一个设备管理软件

pv 物理卷

vg 物理卷组

pe 物理拓展,lvm最小的存储单元

lvm 逻辑卷,时最终我们使用的可以伸缩的设备

 

2.lvm的制作

首先划分lvm所用到的设备,这些设备的功能id必须时linux LVM

 

1)lvm建立

pvcreate /dev/vdb1 ##把物理分区做成物理卷

pvs|pvdisplay ##查看物理卷

 

vgcreate vg0 /dev/vdb1 ##用制作好的/dev/vdb1这个物理卷制作一个物理卷组vg0

vgs|vgdisplay ##查看物理卷组

 

lvcreate -L 200M -n lv0 vg0 ##在vg0这个组中建立出lv0设备 -L 指定设备大小 -n 指定设备名字

lvs|lvdisplay ##对逻辑卷设备进行查看

 

建立lvm

pvcreate /dev/vdb1 ##建立pv

vgcreate vg0 /dev/vdb1 ##建立vg(组)

lvcreate -L 300M -n lv0 vg0 ##设置vm的大小

mkfs.xfs /dev/vg0/lv0 ##格式化

mount /dev/lzt/vg0 /mnt ##挂载

 运维学习第九天运维学习第九天

 

3.lvm设备的扩大

###############针对xfs文件系统######################

xfs文件系统只能扩大不能缩减

1)lvm扩大

lvextend —L 500M /dev/vg0/lv0 ##扩大lvm设备到500M

xfs_growfs /dev/vg0/lv0 ##扩大xfs文件系统到设备大小

2)vg扩大

pvcreate /dev/vdb2 ##在pv中增加一块设备/dev/vdb2

vgextend vg0 /dev/vdb2 ##把新建立的/dev/vdb2添加到vg0中

 运维学习第九天

##############针对ext文件系统####################

ext文件系统可以扩大也可以缩减

1)lvm扩大

lvextend —L 2G /dev/vg0/lv0 ##扩大lvm设备到2G

resize2fs /dev/vg0/lv0 ##设定文件系统大小和设备同步

运维学习第九天

2)vg扩大

    pvcreate /dev/vdb3                       ##在pv中增加一块设备/dev/vdb3

    vgextend vg0 /dev/vdb3                   ##把新建立的/dev/vdb2添加到vg0中

 运维学习第九天

对建立的lvm进行拓展与拉伸

监控命令:

watch -n 1 'echo "=pvinfo=";pvs;echo "=vginfo=";vgs;echo =lvinfo=;lvs;df -h /mnt'

 

lvextend -L 250M /devvg0/lv0 ##拓展分区为250M 

xfs_growfs /dev/lzt/lv0      ##对xfs文件系统进行拉伸(须知: 1.当执行完上条命令时,由监控命令可知新拓展的区域还没有xfs文件系统 2.挂载的位置没有变化,故可直接拉伸)

当一个pv不能满足拓展与拉伸的需求时,操作如下命令:

pvcreate /dev/vdb2            ##建立第二个pv

vgextend vg0 /dev/vdb2         ##将第二个pv添加到建立的vg组里

lvextend -L 600M /dev/vg0/lv0  ##拓展分区为600M 

xfs_growfs /dev/vg0/lv0       ##对xfs文件系统进行拉伸

 

例:

[root@localhost ~]# lvextend -L 250M /dev/lzt/lv0 

[root@localhost ~]# xfs_growfs /dev/lzt/lv0 

[root@localhost ~]# lvextend -L 600M /dev/lzt/lv0 

  Extending logical volume lv0 to 600.00 MiB

  Insufficient free space: 87 extents needed, but only 61 available ##报错:现有的pv不能满足要求,需要87个pe才可成功,现有的只有61个

[root@localhost ~]# pvcreate /dev/vdb2

[root@localhost ~]# vgextend vg0 /dev/vdb2

  Volume group "vg0" successfully extended

[root@localhost ~]# lvextend -L 600M /dev/vg0/lv0 

  Extending logical volume lv0 to 600.00 MiB

  Logical volume lv0 successfully resized ##成功拓展与拉伸

[root@localhost ~]# xfs_growfs /dev/vg0/lv0 

3)lvm缩减

umount /dev/vg0/lv0 ##卸载设备,因为文件系统缩减不支持在线操作

e2fsck -f /dev/vg0/lv0 ##检测文件系统,确定文件系统中已有数据大小防止过度缩减

resize2fs  /dev/vg0/lv0  1G ##把文件系统缩减到1G

lvreduce  -L 1G /dev/vg0/lv0 ##设备缩减到1G

4)vg缩减

#在vg缩减时只能缩减没有被占用的设备

pvmove 设备1 设备2 ##把设备1上的所有数据移动到设备2上

vgreduce vg0 /dev/vdb1 ##把vg0中的/dev/vdb1删除

pvremove /dev/vdb1 ##把/dev/vdb1上的lvm管理信息删除

 运维学习第九天

 

分区的缩小:

(xfs文件类型不能进行缩小,ext文件类型可以)

umount  /mnt/

mkfs.ext4 /dev/lzt/lv0  ##首先格式化lvm为ext4文件类型

e2fsck -f /dev/vg0/lv0  ##对lvm中的数据进行查看(在缩小lvm前必须要做的)

resize2fs /dev/vg0/lv0 550M     ##将lvm文件系统的大小缩小为500M

lvreduce -L 500M /dev/vg0/lv0  ##将lv大小缩小为500M

pvremove /dev/vdb1 /dev/vdb2 ##将/dev/vdb1中的数据移动到/dev/vdb2中(切记:此过程中不要执行ctrl+c命令操作)

vgreduce vg0 /dev/vdb1 ##将/dev/vdb1从vg组中移除

pvremove /dev/vdb1 ##删除pv(即/dev/vdb1)

 

若先缩减lv则会出现错误,此时应先将设备的空间升上来,

若删除了正在使用的设备,则需执行vgreduce --removemissing vg0(vg组名)

 

 

5)lvm丢失设备的删除

[root@westos ~]# pvs

  PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

  PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

  PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

  PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

  PV             VG   Fmt  Attr PSize    PFree   

  /dev/vdb1      vg0  lvm2 a--  1020.00m  820.00m

  /dev/vdb2      vg0  lvm2 a--  1020.00m 1020.00m

  unknown device vg0  lvm2 a-m   996.00m  996.00m ##设备丢失

 

[root@westos ~]# vgreduce --removemissing vg0 ##删除vg0中丢失的设备

 PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

 PV g2OIge-1awl-HOFo-XwNG-EhUg-KP5E-GBQGRt not recognised. Is the device missing?

 Wrote out consistent volume group vg0

 

 

[root@westos ~]# pvs

PV         VG   Fmt  Attr PSize    PFree   

/dev/vdb1  vg0  lvm2 a--  1020.00m  820.00m

/dev/vdb2  vg0  lvm2 a--  1020.00m 1020.00m

 

 

6.lvm快照

lvcreate -L 20M -n lv0-backup -s /dev/vg0/lv0 ##给/dev/vg0/lv0建立快照,-L 指定快照大小,-n指定快照名字 -s指定快照模板设备

mount /dev/vg0/lv0-backup /userdate

当快照设备里的数据被更改,如果想还原,删除快照设备,在重新建立快照即可

 

lvcreate -L 12M -n lv0backup -s /dev/lzt/lv0

 

 

7.lvm删除

lvremove---->vgremove----->pvremove

 

lvremove /dev/vg0/lv0backup 

lvremove /dev/vg0/lv0

vgremove vg0

pvremove /dev/vdb2

 运维学习第九天运维学习第九天

 

########附加知识点------《磁盘配额》######################

1.磁盘配额时限制用户向设备中写入数据的大小,或者个数

2.此这定针对与设备的,

3.做法

mount -o usrquota,grpquota /dev/vdb1  /pub ##激活配额功能参数

quotaon -ugv /pub ##开启配额

edquota -u lee ##设定lee的配额

repquota -a ##root可以执行,查看用户配额信息

quota ##配额限制用户查看自己配额信息命令

4.开机自动激活配额

vim /etc/fstab

/dev/vdb1 /pub xfs defaults,usrquota,grpquota 0 0

 

5.关闭配额

删除vim /etc/fstab中的配额参数

quotaoff -ugv 设备