当前位置:网站首页>九、磁盘管理

九、磁盘管理

2022-07-05 10:35:00 Lyon-w

(一)磁盘基础知识
磁盘--硬盘(机械,固态)

磁盘结构
https://www.jianshu.com/p/cf100e39ccdf

扇区、磁道、柱面 扇区默认大小是512Byte字节
https://www.cnblogs.com/jswang/p/9071847.html

磁盘读取速度
系统存储空间不足时,添加新硬盘

使用新硬盘的流程:
分区---格式化---挂载---使用
/dev/sda sd 磁盘类型 USB SCSI SATA , a 表示系统的第一块硬盘 z aa sdaa az
/dev/sda1 1 表示sda这块磁盘的第一个分区

分区模式:
1、MBR (启动加载器446字节,分区表64字节,校验码2字节,这些都存储在磁盘的第一个扇区,0号扇区)
2、GPT
MBR:

分区类型:
主分区P:装载数据用。主分区最多可以有4个,每个分区占分区表的16字节,可以格式化。编号范围是1-4 3P 1E
扩展分区E:主要是装载逻辑分区用的。扩展分区最多能有1个,而且会占主分区的1个位置。而且不能格式化 ,编号范围1-4之间任意一个
逻辑分区L:装载数据。存在于扩展分区内的。根据磁盘类型不同,可以有15个左右。编号范围从5开始 可格式化

推荐分区方案:4P or 3P+1E
fdisk工具、查看磁盘信息、给磁盘分区

添加新磁盘方法--关机-添加5G硬盘-开机--fdisk -l
[[email protected] ~]# fdisk -l
[[email protected] dev]# fdisk -l /dev/sdb
[[email protected] ~]# df -Th
分区:
[[email protected] ~]# fdisk /dev/sdb
命令(输入 m 获取帮助):m
d delete a partition
l list known partition types
m print this menu
n add a new partition
p print the partition table
q quit without saving changes
w write table to disk and exit
t change a partition's system id

命令(输入 m 获取帮助):n
Partition type:
p primary (3 primary, 0 extended, 1 free)
e extended
Select (default e): p
已选择分区 4
起始 扇区 (37890048-41943039,默认为 37890048):
将使用默认值 37890048
Last 扇区, +扇区 or +size{K,M,G} (37890048-41943039,默认为 41943039):+1G
分区 4 已设置为 Linux 类型,大小设为 1 GiB
命令(输入 m 获取帮助):w
同步分区表,产生新的分区对应的文件
[[email protected] ~]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3
[[email protected] ~]# partx -a /dev/sda     #partx -a或者 partprobe命令,都可以达到创新分区表的作用
partx: /dev/sda: error adding partitions 1-3
[[email protected] ~]# ls /dev/sda*
/dev/sda /dev/sda1 /dev/sda2 /dev/sda3 /dev/sda4

格式化: (格式化就是在定义磁盘分区的文件系统类型),
Linux:ext2,3,4,xfs,
网络文件系统:nfs ,cifs
windows:fat32,ntfs
[[email protected] ~]# mkfs.xfs /dev/sda4 或 mkfs -t 文件系统 设备名
挂载使用: (只有文件系统才能挂载,确保挂载点是空目录)
[[email protected] ~]# mount /dev/sda4 /mnt/disk1

查询分区及文件系统类型的命令:
1、lsblk
lsblk --fs
2、blkid
/dev/mapper/centos-swap: UUID="fe6827ca-01f8-437a-a0ab-3dcb80607861" TYPE="swap"
[[email protected] mnt]# blkid /dev/sdb3
/dev/sdb3: UUID="7bfa0f7c-de78-44aa-a7a4-53a8ab6c76d0" TYPE="ext3"

可以通过UUID方式挂载
mount UUID="7bfa0f7c-de78-44aa-a7a4-53a8ab6c76d0" /mnt/dir2
3、df -Th

挂载分区:
mount  源设备   挂载点
mount
-o 指定附加权限(ro只读、rw读写、(a)syn同步/异步、(no)atime是否更新访问时间
(no)dev是否启用设备文件、(no)exec执行文件是否可被执行(默认可以)
(no)suid是否启用特殊权限功能、(no)user是否允许普通用户执行mount)
defaults=rw+suid+dev+exec+auto+nouser+async

注意:
1、原设备必须是文件系统(格式化之后的分区或磁盘称为文件系统)
2、挂载点位置,需要选择空目录
mount -o remount,ro /dev/sdb2 /mnt/dir2
-t:指定文件系统类型
-o:指定权限
卸载分区:
[[email protected] ~]# umount /mnt
注意:mount命令是临时挂载,重启失效
3.删除逻辑分区sdb7 查看哪个分区消失了?想想为什么?
答案:结论:sdb8替换称为了sdb7

三、临时挂载
mount(临时挂载)
mount -t 文件系统类型 被挂载的设备 挂载点
[[email protected] ~]# mount /dev/sda5 /mnt/
[[email protected] ~]# umount /dev/sda5
[[email protected] ~]# umount /mnt
[[email protected] ~]# umount -l /opt/
[[email protected] ~]# mount -o rw,remount /opt/ 重新挂载
[[email protected] ~]# mount -o bind /root/ /tmp/ 挂载目录
实验:
划分两个逻辑分区sda5,sda6 分别格式化为xfs文件系统
1.将sda5 挂载到/mnt 上 ,并在/mnt 创建文件test.txt
再将sda5挂载到/opt上,问能不能挂载?能不能看到test.txt文件?
2.将sda5挂载到/mnt上,并在/mnt 创建文件test.txt
将sda6挂载到/mnt上
问:能不能挂载? 能不能看到test.txt文件?
四、自动挂载
自动挂载:
1./etc/rc.local(进入系统前,最后一个启动脚本)
mount -t xfs /dev/sda5 /mnt
mount -t iso9660 /var/ftp/CentOS7-2.iso /yum
chmod a+x /etc/rc.d/rc.local    给此脚本执行权限
2./etc/fstab
/dev/sda5 /mnt xfs defaults 0 0
/var/ftp/CentOS7-2.iso /yum/ iso9660 defaults 0 0
被挂载的设备 挂载点 文件系统 参数 dump备份 fsck检查(xfs文件系统不支持)(0:不检测,1和2检测,1比2级别高,主要检测磁盘完整性)
40G5
创建一个主分区10G 永久挂在到/nfs
创建两个lvm12G永久挂载到/datedir,/master(二)mount(临时挂载)

mount -t 文件系统类型 被挂载的设备 挂载点
[[email protected] ~]# mount /dev/sda5 /mnt/
[[email protected] ~]# umount /dev/sda5
[[email protected] ~]# umount /mnt
[[email protected] ~]# umount -l /opt/
[[email protected] ~]# mount -o rw,remount /opt/ 重新挂载
[[email protected] ~]# mount -o bind /root/ /tmp/ 挂载目录

实验:
划分两个逻辑分区sda5,sda6 分别格式化为xfs文件系统
1.将sda5 挂载到/mnt 上 ,并在/mnt 创建文件test.txt
再将sda5挂载到/opt上,问能不能挂载?能不能看到test.txt文件?

2.将sda5挂载到/mnt上,并在/mnt 创建文件test.txt
将sda6挂载到/mnt上
问:能不能挂载? 能不能看到test.txt文件?

自动挂载-文件形式:
1./etc/rc.local(进入系统前,最后一个启动脚本)
mount -t xfs /dev/sda5 /mnt
mount -t iso9660 /var/ftp/CentOS7-2.iso /yum
chmod a+x /etc/rc.d/rc.local    给此脚本执行权限

2./etc/fstab
/dev/sda5 /mnt xfs defaults 0 0
/var/ftp/CentOS7-2.iso /yum/ iso9660 defaults 0 0
被挂载的设备 挂载点 文件系统 参数 dump备份 fsck检查(xfs文件系统不支持)(0:不检测,1和2检测,1比2级别高,主要检测磁盘完整性)

autofs(按需挂载服务)
安装软件:
[[email protected] etc]# yum install autofs

开启服务并且开机自启动
方法1:
[[email protected] ~]# systemctl start autofs; systemctl enable autofs
Created symlink from /etc/systemd/system/multi-user.target.wants/autofs.service to /usr/lib/systemd/system/autofs.service.
方法2:
[[email protected] ~]# systemctl enable --now autofs

创建目录
[[email protected] ~]# mkdir /test
mount -o rw /dev/sdc5 /test
命令 权限 源文件 挂载点
主配置文件(定义按需挂载目录,定义对该目录挂载设备的文件)
[[email protected] etc]# vim /etc/auto.master
/test /etc/auto.misc
挂载点 设备源文件配置文件
[[email protected] etc]# vim /etc/auto.misc
disk -fstype=xfs,rw :/dev/sda5
虚拟目录 文件系统类型,权限 挂载的源文件
重启autofs服务
[[email protected] etc]# systemctl restart autofs

测试:
[[email protected] /]# cd /test/disk #需要cd /test/disk这个虚拟目录中才可以加载自动挂载
[[email protected] disk]# ls
test.txt
[[email protected] disk]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/sr0 4.4G 4.4G 0 100% /mnt
/dev/sdc5 97M 5.3M 92M 6% /test/disk
自定义卸载时间
vim /etc/autofs.conf
timeout = 5
保存退出后重启服务systemctl restart autofs生效配置。
每隔1妙执行一次mount命令
[[email protected] /]# watch -n 1 mount
autofs配置方法二:
vim /etc/auto.master.d/iso.autofs #如果挂载点相关信息,不设置在/etc/auto.master里面可以将其设置在/etc/auto.master.d/这个目录下,并且创建文件名自定义但结尾要以结尾,比如iso.autofs
/mnt /etc/auto.misc

[[email protected] /]# cat /etc/auto.misc
iso -fstype=iso9660,ro :/dev/sr0

解题思路:
1、设备源文件 /dev/sr0 文件iso9660
2、挂载点 /mnt
3、虚拟目录 iso
4、权限 ro

yum
baseurl=file:///mnt/iso
[[email protected] /]# cat /etc/auto.master
/mnt /etc/auto.misc
[[email protected] /]# cat /etc/auto.misc
iso -fstype=iso9660,ro :/dev/sr0
[[email protected] /]# cat /etc/yum.repos.d/yum.repo
[local-yum]
name=autofs yum
baseurl=file://mnt/iso
enabled=1
gpgcheck=0

[[email protected] /]# systemctl restart autofs
[[email protected] /]# systemctl enable autofs
[[email protected] ~]# yum clean all;yum makecache
[[email protected] ~]# yum repolist all
[[email protected] ~]# yum install -y xxxx 测试是否可以安装
[[email protected] ~]# reboot
[[email protected] ~]# yum install -y xxxx 测试是否可以安装,如果可以的话
证明autofs可以完成自动挂载光盘的效果。

(三)硬链接、软链接
在使用计算机时,比如windows下,我的电脑---D---一级目录----二级目录,所可以将二级目录直接制作快捷方式至桌面。
软链接:使用范围广
硬链接:节省系统空间
文件链接方式 :
符号连接(软链接)
ln -s /tmp/passwd /home/
硬链接
ln /tmp/passwd /tmp/passwd.link

制作软链接
[[email protected] /]# ln -s /home /home1
语法:ls命令 -s 代表软链接 /home原文件 /home1链接文件
[[email protected] /]# ls acl.bak dev home1 media proc sbin tmp bin etc lib mnt root srv usr boot home lib64 opt run sys var
[[email protected] /]# ll /home1 lrwxrwxrwx. 1 root root 5 3月 10 10:20 /home1 -> /home
[[email protected] /]# cd /home1
[[email protected] home1]# ls admin harry lisa tom

系统中常见的软链接
ll / lrwxrwxrwx. 1 root root 7 8月 12 2018 lib -> usr/lib
lrwxrwxrwx. 1 root root 9 8月 12 2018 lib64 -> usr/lib64
lrwxrwxrwx. 1 root root 8 8月 12 2018 sbin -> usr/sbin
[[email protected] /]# ll /dev/cdrom
lrwxrwxrwx. 1 root root 3 3月 10 04:12 /dev/cdrom -> sr0

软链接应用
1、将光盘挂载至/mnt/中
2、安装vsftpd服务
3、在/var/ftp/中设置链接文件DVD,原文件位置是/mnt/
4、启动vsftpd服务,开机自启动
5、客户端访问/var/ftp/DVD 可以访问到光盘内容

1、将光盘挂载至/mnt/中
[[email protected] /]# mount /dev/cdrom /mnt/
[[email protected] mnt]# vim /etc/yum.repos.d/iso.repo
[iso]
name=iso
baseurl=file:///mnt/AppStream
enabled=1
gpgcheck=0 [iso2]
name=iso2
baseurl=file:///mnt/BaseOS
enabled=1
gpgcheck=0
[[email protected] mnt]# yum repolist all
2、安装httpd服务
[[email protected] /]# yum install -y httpd
3、在/var/www/html/soft为链接文件,原文件位置是/mnt/
[[email protected] /]# ln -s /mnt/ /var/www/html/soft
[[email protected] /]# systemctl restart httpd
4、启动httpd服务,开机自启动
[[email protected] DVD]# systemctl enable --now httpd
5、客户端访问/var/www/html/soft 可以访问到光盘内容 打开浏览器127.0.0.1/soft

制作硬链接
[[email protected] /]# cd /opt/
[[email protected] opt]# ls acldir
[[email protected] opt]# touch srcfile
[[email protected] opt]# echo source > srcfile
[[email protected] opt]# cat srcfile source
[[email protected] opt]# ln /opt/srcfile /hardlink
[[email protected] opt]# cd /
[[email protected] /]# ls boot hardlink lib mnt root srv usr
[[email protected] /]# ll /hardlink /hardlink

两个文件属性一样,因为公用一个i节点, -rw-r--r--. 2 root root 7 3月 10 03:02 /hardlink -rw-r--r--. 2 root root 7 3月 10 03:02 /hardlink
[[email protected] /]# cat /hardlink 链接文件内容与源文件一致 source ROOT_LINK
[[email protected] /]# rm /opt/srcfile 删除源文件普通文件依然可用 rm:是否删除普通文件 '/opt/srcfile'?y
[[email protected] /]# cat /hardlink source ROOT_LINK

区别:
1.命令相同 参数不同
软链接在创建必须绝对路径
硬链接都可以
2.硬链接的权限和源文件完全一致
软链接的链接文件权限永远是777 和源文件权限不同
3.硬链接可以删除,移动源文件
软链接不可以删除,移动源文件
4.软链接inode和源文件不同
硬链接的inode的源文件相同
5.软链接可以对目录及文件生效
硬链接只可以对文件操作
6.软链接可以跨文件系统
硬链接不可以跨文件系统
unlink 链接文件名 # 取消链接
[[email protected] /]# cd /var/www/html/
[[email protected] html]# ls soft
[[email protected] html]# unlink soft
[[email protected] html]# ls

(四)raid 磁盘阵列
传统硬盘使用时的问题:
1、数据可靠性无法保证
2、容量有限
3、吞吐量300/s

磁盘阵列:
1.数据冗余
2.读写加速
软raid:基于linux系统内核支持的功能实现的,使用时耗费的资源是系统本身。
硬raid:raid卡,额外的物理设备可以单独处理,效率更高,效果好,价格昂贵
raid的级别
level 0 :raid0级别,通过条带化方式记录数据,至少两块硬盘,大小尽量一致。优点:但是读写速度快。磁盘利用率100%。缺点:当其中一块硬盘损坏时,另一块硬盘数据也会受影响

作用: 条带化
数量: 2块(最少)
size:500G 1T 2n
level 1:镜像模式,数据会分别记录到两块硬盘中,所以会存储双倍的数据,写入较慢。其中一块硬盘做备份使用,优点是有备份,缺点是利用率只有50%。

作用: 镜像
数量: 2块(最少)
size: 500G 500G n/2
level 5 数据按顺序写入,disk1写入数据A,disk2写入数据B,disk3写入奇偶校验码,写入较慢,读取较快,可以多磁盘同时读取,n-1/n,raid5只允许
同时损坏一块硬盘。
作用: 带奇偶数校验的条带化
数量: 3块(最少)
size:500G n-1 1T
level 10

作用: raid1+raid0
数量: 4块(最少)
size:500G n/2
mdadm --create /dev/md0 --level=1 --raid-devices=2 /dev/hd[ac]1
raid命令
--create -C # 创建
--level=1 -l #指定raid等级,比如0,1,5,10
/dev/mdN #raid的设备名, md 代表多设备的含义,N是一个数字,只是一个编号和level等级无关。 编号范围0-31,共32个
--raid-devices=2 -n #使用几块设备
/dev/hd[ac]1 #实际块设备的名称

raid0
1、准备两个物理块设备,推荐用两块硬盘,为了节省空间练习过程中可以使用两个分区来代替硬盘。
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 2099199 2097152 1G 83 Linux
/dev/sdc2 2099200 4196351 2097152 1G 83 Linux
/dev/sdc3 4196352 6293503 2097152 1G 83 Linux
/dev/sdc4 6293504 10485759 4192256 2G 5 扩展
/dev/sdc5 6295552 8392703 2097152 1G 83 Linux
/dev/sdc6 8394752 10485759 2091008 1021M 83 Linux

2、创建raid0,采用其中两个分区,模拟两个磁盘
[[email protected] ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdc{1,2}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started. 代表阵列创建成功
软raid(使用软件模拟)
创建raid 0:
mdadm -C -n 2 -l 0 /dev/md0 /dev/sda5 /dev/sda6
查询
mdadm -D /dev/md0
使用raid0:
mkfs.xfs /dev/md0
mkdir /mnt/raid
mount /dev/md0 /mnt/raid

常见raid管理命令
显示扫描信息
mdadm -Ds
停止
mdadm -S /dev/md0
激活阵列
mdadm -A /dev/md0 /dev/sda5 /dev/sda6
删除
rm -rf /dev/md0
清除超级块信息(使其不属于某个md设备)
mdadm --zero-superblock /dev/sda5 /dev/sda6
cat /proc/mdstat 看缓存里面的md设备状态
永久生效:
mdadm -C -n 3 -l 5 /dev/md5 /dev/sda{5,6,7} -x 1 /dev/sda8
[[email protected] ~]# vim /etc/mdadm.conf (关键字后面跟的是设备列表(设备和分区),这些设备可能是某个md设备的组件。当要查找某个RAID的组件设备时,mdadm会扫描这些设备。 )
DEVICE /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8 (DEVICE开头,后面是使用过的raid里面的设备)
[[email protected] ~]# mdadm -Ds /dev/md0 >> /etc/mdadm.conf
[[email protected] ~]# cat /etc/mdadm.conf
DEVICE /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8
ARRAY /dev/md5 metadata=1.2 spares=1 name=localhost:5 UUID=5249b8cf:c2a5b49f:405a4a2c:2247d8c9
(说明:关键字ARRAY标识一个活动的RAID,ARRAY后面跟着的是RAID的名字。RAID名字后面跟着的是RAID的属性值,这些属性值标识一个RAID,或者标识一个组的成员RAID(spare-group)。假如给出了多个属性值,则每个组件设备中的超级块信息必须匹配属性值。)
用时候的思路
1、创建raid0
2、挂载
3、vim /etc/mdadm.conf
不用时候的思路
4、卸载
5、rm
6、清除配置文件,清除超级块

实例:
raid1:
mdadm -C -n 2 -l 1 /dev/md1 /dev/sda5 /dev/sda6
raid5:
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 2099199 2097152 1G 83 Linux
/dev/sdc2 2099200 4196351 2097152 1G 83 Linux
/dev/sdc3 4196352 10485759 6289408 3G 5 扩展
/dev/sdc5 4198400 5222399 1024000 500M 83 Linux
/dev/sdc6 5224448 6248447 1024000 500M 83 Linux
/dev/sdc7 6250496 7274495 1024000 500M 83 Linux
/dev/sdc8 7276544 8300543 1024000 500M 83 Linux
/dev/sdc9 8302592 9326591 1024000 500M 83 Linux
mdadm -C -n 3 -l 5 /dev/md5 /dev/sda5 /dev/sda6 /dev/sda7
rai10:
mdadm -C -n 4 -l 10 /dev/md10 /dev/sda5 /dev/sda6 /dev/sda7 /dev/sda8
模拟损坏:
创建
mdadm -C -n 3 -l 5 /dev/md5 /dev/sda{5,6,7}
mkfs.xfs /dev/md5
mount /dev/md5 /mnt
损坏
mdadm -f /dev/md5 /dev/sda5
查询
mdadm -D /dev/md5
移除
mdadm -r /dev/md5 /dev/sda5
添加
mdadm -a /dev/md5 /dev/sda8

模拟损坏实验流程:
实验前,保证raid5是已经挂载并在使用的状态
1、mdadm -D /dev/md5 当前有3块磁盘
2、mdadm -a /dev/md5 /dev/sda8 添加一块备份盘
mdadm -D /dev/md5 查看是否添加了备份盘
3、mdadm -f /dev/md5 /dev/sdc7 指定sdc7为损坏盘
mdadm -D /dev/md5 马上查看,发现数据正在重建
4、mdadm -r /dev/md5 /dev/sdc7 将坏盘移除
mdadm -a /dev/md5 /dev/sdc9 添加新的备用盘
mdadm -D /dev/md5 进行查看备用盘是否存在即可
备用盘:
mdadm -C -n 3 -l 5 /dev/md5 /dev/sda{5,6,7} -x 1 /dev/sda8
等价于:
mdadm -C -n 3 -l 5 /dev/md5 /dev/sda{5,6,7}
mdadm -a /dev/md5 /dev/sda8
mdadm -D /dev/md5
1.卸载
2.停止
3.删除
4.清除超级块
5、清除配置文件
删除raid0流程

• 取消挂载 umount /mnt/raid0
• 停止raid0设备服务 mdadm -S /dev/md0
删除radi0 rm -rf /dev/md0
• 清除sd{b.c,d,e}1的超级块使其不属于raid0,mdadm --zero-superblock /dev/sdb1
• mdadm --zero-superblock /dev/sdc1
• mdadm --zero-superblock /dev/sdd1
• mdadm --zero-superblock /dev/sde1
• rm -f /etc/mdadm.conf(如果不删除文件可以将内容删除或注释)
• 删除/etc/fstab中的md0挂载点,删除完毕。
• 当然,取消挂载,直接dd if=/dev/zero of=/dev/sd{b,c,d,e}1清除文件系统后再停止服务、清除超级块、删配置文件跟挂载点也可以。

raid0应用流程,要求可以永久挂载并使用
1、准备两块同样大小的磁盘(是否分区自定义) /dev/sda /dev/sdb
2、mdadm命令创建一个raid0 /dev/md0 /dev/sda /dev/sdb
3、格式化raid设备,mkfs.ext4 /dev/md0
4、挂载,将md0 设备进行挂载/mnt/R0
5、将raid属性信息记录至/etc/mdadm.conf ,内容包括DEVICE ARRAY
6、开机自动挂载/etc/fstab

(五)LVS
LVM逻辑卷介绍
分区的时候,每个分区的大小分配令人头疼,随着长时间运行,分区无论多大,都会被数据占满,当遇到分区空间不足时,需要备份整个系统,清除磁盘,重新分配更大空间磁盘,进行数据恢复。
市面上很多调整磁盘工具可以使用,但是LVM相对更成熟,深受企业厚爱,运行稳定。它不会被分区空间大小限制,可以弹性伸缩调整分区大小。
LVM(logic volume manager)方式可以解决磁盘空间占满后,可以在不卸载的情况下,直接弹性扩大磁盘空间。完美解决磁盘不足问题。

一、逻辑卷介绍
逻辑卷LVM:它是linux环境下对磁盘分区进行管理的一种机制,它时建立在物理存储设备之上的一个抽象层,优点在于灵活管理。

特点:
1、动态在线扩容
2、离线剪裁 ext4
3、数据条带化
4、数据镜像

1、物理卷Physical Volume, PV:
实际分区可以设置系统识别码8e,通过pvcreate将实际物理分区变成lvm可以使用的分区。
2、物理扩展块Physical Extend, PE:
物理扩展块默认是4M,这个扩展块类似格式化时的block块
3、卷组Volume Group, VG :
将所有的物理空间组合起来就是VG的大小,VG中包含着PE块,一个VG中最多只能包含65534个PE,所以如果PE是4Mx65534=256G
4、逻辑卷LV:
最终我们会在VG的空间中划分出lv,设备名称通常为/dev/vg100/lv100
5、LE
逻辑卷也被划分为LE(logical Extents)的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并对应。

三、逻辑卷使用流程
1、分区
2、将分区制作成物理卷
3、设置VG,同时指定pe
4、在vg中划分lv
5、格式化
6、自动挂载
分区: 此步骤是通过不同分区来模拟磁盘 设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 10485759 10483712 5G 5 扩展
/dev/sdb5 4096 2101247 2097152 1G 83 Linux
/dev/sdb6 2103296 4200447 2097152 1G 83 Linux
/dev/sdb7 4202496 6299647 2097152 1G 83 Linux
/dev/sdb8 6301696 8398847 2097152 1G 83 Linux

选择其中两个块设备,制作成PV
将分区制作成物理卷
man pvcreate----找例子搜索examples----复制例子到命令行进行修改
[[email protected] ~]# pvcreate /dev/sdb5 /dev/sdb6
Physical volume "/dev/sdb5" successfully created. -- 表示创建完成
Physical volume "/dev/sdb6" successfully created.
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <19.00g 0 --- 根目录的pv
/dev/sdb5 lvm2 --- 1.00g 1.00g --- 此时只有/dev/sdb5和sdb6是空闲可使用的
/dev/sdb6 lvm2 --- 1.00g 1.00g

设置VG,同时指定pe
man vgcreate----找例子搜索examples----复制例子到命令行进行修改
[[email protected] ~]# man create
[[email protected] ~]# vgcreate -s 16M myvg /dev/sdb5 /dev/sdb6 -s:表示PE块大小,为16M一个PE块
Volume group "myvg" successfully created

[[email protected] ~]# vgdisplay --- Volume group ---
VG Name myvg vg名称
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 <1.97 GiB VG总大小
PE Size 16.00 MiB 每个PE大小
Total PE 126 PE数量总和
Alloc PE / Size 0 / 0 可使用的pe数量
Free PE / Size 126 / <1.97 GiB 剩余的pe数量
VG UUID BVBSQF-yuGl-DidT-Cd7k-KPjJ-xtCO-E7uTCd UUID

注意:如果出现vg创建错误的情况可以删除,vgremove vg名称
在vg中划分lv
[[email protected] ~]# lvcreate -L 960M -n mylv myvg ------ -L指定LV大小 , -n mylv 指定lv名字为mylv ,-l 指定PE块数量 比如-l 60 等同于 -L 960M 因为PE块大小是16M
Logical volume "mylv" created. --- 表示创建成功
[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
mylv myvg -wi-a----- 960.00m lv名称 和对应大小
root rhel -wi-ao---- <17.00g
swap rhel -wi-ao---- 2.00g

[[email protected] ~]# lvscan
ACTIVE '/dev/myvg/mylv' [960.00 MiB] inherit 状态active正常,/dev/myvg/mylv实际lv设备的物理路径 ,大小960M
ACTIVE '/dev/rhel/swap' [2.00 GiB] inherit
ACTIVE '/dev/rhel/root' [<17.00 GiB] inherit

[[email protected] ~]# lvdisplay /dev/myvg/mylv
--- Logical volume ---
LV Path /dev/myvg/mylv 实际物理路径
LV Name mylv lv名字
VG Name myvg 该lv属于myvg
LV UUID EYpRNm-v2S4-xizJ-BtbI-63VF-2yqi-anbsPU
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-03-09 06:29:25 -0500
LV Status available # open 0
LV Size 960.00 MiB lv大小
Current LE 60 LE数量
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 8192
    Block device 253:2

格式化
[[email protected] ~]# mkfs.ext4 /dev/myvg/mylv
mke2fs 1.44.6 (5-Mar-2019)
创建含有 245760 个块(每块 4k)和 61440 个inode的文件系统
文件系统UUID:6702fb5e-75f6-4ec5-b721-c586ce3e93c6
超级块的备份存储于下列块:
32768, 98304, 163840, 229376

正在分配组表:
完成
正在写入inode表:
完成
创建日志(4096 个块)
完成
写入超级块和文件系统账户统计信息:
已完成
自动挂载
可以选择mount、fstab、autofs,因为是存储设备所以推荐fstab永久挂载
[[email protected] ~]# mkdir /mnt/lvm
[[email protected] ~]# echo "/dev/myvg/mylv /mnt/lvm ext4 defaults 0 0" >> /etc/fstab
[[email protected] ~]# cat /etc/fstab /dev/myvg/mylv /mnt/lvm ext4 defaults 0 0
[[email protected] ~]# mount -a
[[email protected] ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点
devtmpfs 819M 0 819M 0% /dev
tmpfs 837M 0 837M 0% /dev/shm
tmpfs 837M 9.7M 827M 2% /run
tmpfs 837M 0 837M 0% /sys/fs/cgroup
/dev/mapper/rhel-root 17G 4.2G 13G 25% /
/dev/sda1 1014M 180M 835M 18% /boot
tmpfs 168M 1.2M 167M 1% /run/user/42
tmpfs 168M 4.6M 163M 3% /run/user/0
/dev/sr0 7.4G 7.4G 0 100% /run/media/root/RHEL-8-1-0-BaseOS-x86_64
/dev/mapper/myvg-mylv 929M 2.4M 863M 1% /mnt/lvm 此位置是lv的挂载状态,表示成功了,接下来就可以cd /mnt/lvm可以使用了

需知:
挂载时采用的源设备是/dev/myvg/mylv,挂在后源设备变成了/dev/mapper/myvg-mylv,因为他俩都是实际物理设备的链接文件,实际使用时两个路径都可以使用。
[[email protected] ~]# ll /dev/myvg/mylv /dev/mapper/myvg-mylv
lrwxrwxrwx. 1 root root 7 3月 9 06:38 /dev/mapper/myvg-mylv -> ../dm-2
lrwxrwxrwx. 1 root root 7 3月 9 06:38 /dev/myvg/mylv -> ../dm-2

测试使用
[[email protected] ~]# cd /mnt/lvm/
[[email protected] lvm]# ls lost+found
[[email protected] lvm]# touch 123
[[email protected] lvm]# ls 123 lost+found

逻辑卷常用命令
一、逻辑卷管理(增、删、改、查)
PV物理卷阶段
将物理分区制作成物理卷 pv阶段
pvcreate 创建
pvs
pvscan
pvdisplay
pvremove

VG卷组阶段

设置VG
vgcreate
-s : 指定PE大小,不指定默认4M
vgs
vgscan
vgdisplay
vgextend
vgreduce
vgchange
vgremove

LV逻辑卷阶段
划分lv相关命令
lvcreate
lvs
lvscan
lvdisplay
lvextend
lvreduce
lvremove
lvresize

卸载lv流程
先卸载系统上面的 LVM 文件系统 以及/etc/fstab LV的内容注释或清空
使用 lvremove 移除 LV ;
使用 vgchange -a n VGname 让 VGname 这个 VG 不具有 Active 的标志;
使用 vgremove 移除 VG:
使用 pvremove 移除 PV;
最后,使用 fdisk 修改 ID 回来啊!

先卸载系统上面的 LVM 文件系统 以及/etc/fstab LV的内容注释或清空
[[email protected] ~]# vim /etc/fstab
/dev/myvg/mylv /mnt/lvm ext4 defaults 0 0 ---将其注释或清空,保证不生效
[[email protected] /]# umount /mnt/lvm

使用 lvremove 移除 LV ;
[[email protected] ~]# lvremove /dev/myvg/mylv
Do you really want to remove active logical volume myvg/mylv? [y/n]: y 输入y确认移除
Logical volume "mylv" successfully removed 移除成功

[[email protected] ~]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
root rhel -wi-ao---- <17.00g 发现mylv已经被移除
swap rhel -wi-ao---- 2.00g

使用 vgremove 移除 VG:
[[email protected] ~]# vgremove /dev/myvg
Volume group "myvg" successfully removed

[[email protected] ~]# vgdisplay /dev/myvg
Volume group "myvg" not found
Cannot process volume group myvg

使用 pvremove 移除 PV;
[[email protected] ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <19.00g 0
/dev/sdb5 lvm2 --- 1.00g 1.00g
/dev/sdb6 lvm2 --- 1.00g 1.00g

[[email protected] ~]# pvremove /dev/sdb5 /dev/sdb6
Labels on physical volume "/dev/sdb5" successfully wiped.
Labels on physical volume "/dev/sdb6" successfully wiped.

[[email protected] ~]# pvs
再次查看发现/dev/sdb5 和 6 已经被清空
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <19.00g 0

[[email protected]t ~]# fdisk -l /dev/sdb
Disk /dev/sdb:5 GiB,5368709120 字节,10485760 个扇区
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 10485759 10483712 5G 5 扩展
/dev/sdb5 4096 2101247 2097152 1G 83 Linux
/dev/sdb6 2103296 4200447 2097152 1G 83 Linux
/dev/sdb7 4202496 6299647 2097152 1G 83 Linux
/dev/sdb8 6301696 8398847 2097152 1G 83 Linux

最后,使用 fdisk 修改 ID 回来啊!
如果分区时指定了ID,便修改回来,否则不用修改。

准备4个分区每个1G
将4个分区制作为lvm可用的磁盘PV,并查看是否有4个PV磁盘,多大?
属于某个vg吗?
将所有PV加入到名字为vg100的VG中,每个PE块大小16M,使用所有PV,此时确认VG空间大约应4G左右。
创建名字为lv100的LV,大小为500M,该LV属于vg100.(如果发现500M没法分配,就分配512M,因为500不是16的倍数,每个PE块16M)
创建名字为lv200的LV,大小为800M,该LV属于vg100.
将lv100格式化为ext4文件系统,挂载到/mnt/lvm1上,永久挂载
将lv200格式化为xfs文件系统,挂载到/mntlvm2上,永久挂载

准备4个分区每个1G
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdb1 2048 10485759 10483712 5G 5 扩展
/dev/sdb5 4096 2101247 2097152 1G 83 Linux
/dev/sdb6 2103296 4200447 2097152 1G 83 Linux
/dev/sdb7 4202496 6299647 2097152 1G 83 Linux
/dev/sdb8 6301696 8398847 2097152 1G 83 Linux

将4个分区制作为lvm可用的磁盘PV,并查看是否有4个PV磁盘,多大?
属于某个vg吗?
(输入 m 获取帮助):
[[email protected] ~]# pvcreate /dev/sdb{5,6,7,8}
Physical volume "/dev/sdb5" successfully created.
Physical volume "/dev/sdb6" successfully created.
Physical volume "/dev/sdb7" successfully created.
Physical volume "/dev/sdb8" successfully created.

将所有PV加入到名字为vg100的VG中,此时确认VG空间大约应4G左右
[[email protected] ~]# vgcreate -s 16M vg100 /dev/sdb{5..8}
Volume group "vg100" successfully created

[[email protected] ~]# vgdisplay /dev/vg100
--- Volume group ---
VG Name vg100
System ID
Format lvm2
Metadata Areas 4
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 4
Act PV 4
VG Size ️.94
GiB PE Size 16.00 MiB
Total PE 252
Alloc PE / Size 0 / 0
Free PE / Size 252 / ️.94 GiB
VG UUID tqDKpT-8oxp-achJ-L0M2-bdy3-undb-6leJf1

创建名字为lv100的LV,大小为500M,该LV属于vg100.
(如果发现500M没法分配,就分配512M,因为500不是16的倍数,每个PE块16M)
[[email protected] /]# man lvremove
[[email protected] /]# lvcreate -L 500M -n lv100 vg100 Rounding up size to full physical extent 512.00 MiB
WARNING: ext4 signature detected on /dev/vg100/lv100 at offset 1080. Wipe it? [y/n]: y
确认自动对齐成为512M
Wiping ext4 signature on /dev/vg100/lv100.
Logical volume "lv100" created.

[[email protected] /]# lvdisplay /dev/vg100/lv100
--- Logical volume ---
LV Path /dev/vg100/lv100
LV Name lv100
VG Name vg100
LV UUID EFktle-2YvL-nXqv-uKJ0-TbYY-XP5u-PCvNYq
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-03-09 09:17:38 -0500 LV Status available
open 0
LV Size 512.00 MiB 确认大小为512M
Current LE 32 Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 8192
    Block device 253:2
    创建名字为lv200的LV,大小为50个PE块数量,该LV属于vg100.
    [[email protected] /]# lvcreate -l 50 -n lv200 vg100
    Logical volume "lv200" created.
    [[email protected] /]# lvdisplay /dev/vg100/lv200
    --- Logical volume ---
    LV Path /dev/vg100/lv200
    LV Name lv200
    VG Name vg100
    LV UUID q0ns0a-h7qI-KUQ0-ixt4-6LI5-mp3Z-0RzB45
    LV Write Access read/write
    LV Creation host, time localhost.localdomain, 2021-03-09 09:21:13 -0500
    LV Status available
    open 0
    LV Size 800.00 MiB
    Current LE 50 Segments 1
    Allocation inherit
    Read ahead sectors auto
  • currently set to 8192
    Block device 253:3

将lv100格式化为ext4文件系统,挂载到/mnt/lvm1上,永久挂载
[[email protected] /]# ll /mnt/
总用量 0
drwxr-xr-x. 2 root root 6 3月 9 09:22 lvm1
[[email protected] /]# mkfs.ext4 /dev/vg100/lv100
mke2fs 1.44.6 (5-Mar-2019)
创建含有 131072 个块(每块 4k)和 32768 个inode的文件系统
文件系统UUID:373dcbde-57c9-4909-b7a3-9da44e4186fe
超级块的备份存储于下列块:
32768, 98304
正在分配组表: 完成
正在写入inode表: 完成
创建日志(4096 个块)完成
写入超级块和文件系统账户统计信息: 已完成

[[email protected] /]# echo "/dev/vg100/lv100 /mnt/lvm1 ext4 defaults 0 0" >> /etc/fstab
[[email protected] /]# mount -a

将lv200格式化为xfs文件系统,挂载到/mntlvm2上,永久挂载
[[email protected] /]# ll /mnt/
总用量 0
drwxr-xr-x. 2 root root 6 3月 9 09:22 lvm1
drwxr-xr-x. 2 root root 6 3月 9 09:22 lvm2

[[email protected] /]# mkfs.xfs /dev/vg100/lv200
[[email protected] /]# echo "/dev/vg100/lv200 /mnt/lvm2 xfs defaults 0 0" >> /etc/fstab
[[email protected] /]# [[email protected] /]# mount -a
[[email protected] /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg100-lv100 488M 780K 452M 1% /mnt/lvm1
/dev/mapper/vg100-lv200 794M 38M 757M 5% /mnt/lvm2

注意:
PE和LE说明及应用
PE(Physicalextent)
每一个物理卷被蜂花粉成为PE的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE大小是可配置的,默认4MB
LE (Logicalextent)
逻辑卷也被划分为被成为LE的可悲寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的对应。

逻辑卷扩容
需求:根据上面课上练习继续做如下实验:
1、当前lv100是500M,并且是ext4文件系统,扩展至700M。
2、当前lv200是800M,xfs文件系统,扩展为4.3G左右。
分析思路
1、查看lv所在的vg是否还有剩余空间,如果有可以扩展lv,没有则扩展vg后再扩展lv
2、扩展lv,此时要看是ext系列文件系统,还是xfs文件系统,ext4使用resize2fs扩容,xfs使用xfs_growfs扩容

扩容流程
1、lvextent -L 【num | + num】 lvname # num是扩展为最终的大小,+num是在原来的基础上添加多少
2、如果是ext使用resize2fs扩容
1、扩展lv
[[email protected] /]# lvextend -L +200M /dev/vg100/lv100
在原来的基础上添加200M Rounding size to boundary between physical extents: 208.00 MiB.
Size of logical volume vg100/lv100 changed from 512.00 MiB (32 extents) to 720.00 MiB (45 extents).
Logical volume vg100/lv100 successfully resized.
[[email protected] /]# lvdisplay /dev/vg100/lv100
--- Logical volume ---
LV Path /dev/vg100/lv100
LV Name lv100
VG Name vg100
LV UUID EFktle-2YvL-nXqv-uKJ0-TbYY-XP5u-PCvNYq
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-03-09 09:17:38 -0500
LV Status available
open 1
LV Size 720.00 MiB
此处容量已经被增加
Current LE 45
且LE也有增加
Segments 1
Allocation inherit
Read ahead sectors auto

  • currently set to 8192
    Block device 253:2

[[email protected] /]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg100-lv100 ext4 488M 780K 452M 1% /mnt/lvm1 大小未扩容
/dev/mapper/vg100-lv200 xfs 794M 38M 757M 5% /mnt/lvm2

2、如果是ext使用resize2fs扩容
[[email protected] /]# resize2fs /dev/vg100/lv100 在线扩容,重新定义文件系统大小
resize2fs 1.44.6 (5-Mar-2019)
/dev/vg100/lv100 上的文件系统已被挂载于 /mnt/lvm1;需要进行在线调整大小
old_desc_blocks = 1, new_desc_blocks = 1
/dev/vg100/lv100 上的文件系统现在为 184320 个块(每块 4k)。

[[email protected] /]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sr0 iso9660 7.4G 7.4G 0 100%
/run/media/root/RHEL-8-1-0-BaseOS-x86_64
/dev/mapper/vg100-lv100 ext4 692M 1.1M 647M 1% /mnt/lvm1 已扩容
/dev/mapper/vg100-lv200 xfs 794M 38M 757M 5% /mnt/lvm2

当前lv200是800M,xfs文件系统,扩展为4.3G左右。(注意关键字“为”)
思路:
当前lv200=800M
VG所剩余2500M
最终,需要扩容至4300M的空间
所以,目前VG还需要再添加1000M 约1G

从/dev/sdc中分1G分区制作为pv给vg100添加进去
设备 启动 起点 末尾 扇区 大小 Id 类型
/dev/sdc1 2048 2099199 2097152 1G 83 Linux
[[email protected] /]# pvcreate /dev/sdc1
Physical volume "/dev/sdc1" successfully created.
[[email protected] /]# pvs
PV VG Fmt Attr PSize PFree
/dev/sda2 rhel lvm2 a-- <19.00g 0
/dev/sdb5 vg100 lvm2 a-- 1008.00m 288.00m
/dev/sdb6 vg100 lvm2 a-- 1008.00m 208.00m
/dev/sdb7 vg100 lvm2 a-- 1008.00m 1008.00m
/dev/sdb8 vg100 lvm2 a-- 1008.00m 1008.00m
/dev/sdc1 lvm2 --- 1.00g 1.00g 查看到已经添加了一个pv

扩容vg
[[email protected] ~]# man
vgextend 搜索examples找例子
[[email protected] /]# vgextend vg100 /dev/sdc1
Volume group "vg100" successfully extended 表示扩容vg100成功
[[email protected] /]# vgdisplay /dev/vg100
--- Volume group ---
VG Name vg100
System ID
Format lvm2
Metadata Areas 5
Metadata Sequence No 5
VG Access read/write
VG Status resizable
MAX LV 0 Cur LV 2
Open LV 2
Max PV 0
Cur PV 5
Act PV 5
VG Size 4.92 GiB 发现vg已经添加
PE Size 16.00 MiB
Total PE 315
Alloc PE / Size 95 / 1.48 GiB
Free PE / Size 220 / ️.44 GiB 目前vg100剩余的空间
VG UUID tqDKpT-8oxp-achJ-L0M2-bdy3-undb-6leJf1

此时vg100已经扩容到4.92,但是剩余的PE块 220个,大小 3.4GIB
下面将lv200扩容至4.3G,当前lv200是800M,再把vg100的所有空间用完
[[email protected] /]# lvextend -l +220 /dev/vg100/lv200 #使用vg100剩余的所有pe块
Size of logical volume vg100/lv200 changed from 800.00 MiB (50 extents) to <4.22 GiB (270 extents).
Logical volume vg100/lv200 successfully resized.

[[email protected] /]# lvdisplay /dev/vg100/lv200
--- Logical volume ---
LV Path /dev/vg100/lv200
LV Name lv200
VG Name vg100
LV UUID q0ns0a-h7qI-KUQ0-ixt4-6LI5-mp3Z-0RzB45
LV Write Access read/write
LV Creation host, time localhost.localdomain, 2021-03-09 09:21:13 -0500
LV Status available
open 1
LV Size <4.22 GiB
lv200的大小有改变
Current LE 270
Segments 5
Allocation inherit
Read ahead sectors auto

  • currently set to 8192
    Block device 253:3

[[email protected] /]# df -h
文件系统 容量 已用 可用 已用% 挂载点
/dev/mapper/vg100-lv100 692M 1.1M 647M 1% /mnt/lvm1
/dev/mapper/vg100-lv200 794M 38M 757M 5% /mnt/lvm2 但是实际挂载状态下没有生效,

使用重新定义存储大小命令刷新容量,因为当前文件系统是xfs,所以不能用resize2fs,需要使用xfs_growfs
该命令 后面参数需要跟 挂载点 xfs_growfs /mnt/lvm2
[[email protected] /]# xfs_growfs /mnt/lvm2
data blocks changed from 204800 to 1105920
[[email protected] /]# df -Th
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg100-lv100 ext4 692M 1.1M 647M 1% /mnt/lvm1
/dev/mapper/vg100-lv200 xfs 4.3G 64M 4.2G 2% /mnt/lvm2 看到容量已扩展

逻辑卷缩小
(ext4支持缩小,xfs不支持)

扩展流程:
1 、卸载挂载磁盘
2、执行resize2fs 缩小后的磁盘容量 resize2fs /dev/vg100/lv100 3G,e2fsck -f /dev/vg100/lv100
3、重新挂载并查看lv大小
4、缩小lv容量 lvresize -L -2G /dev/vg100/lv100
5、从vg中移除空余的vg比如8,9 vgreduce vg100 /dev/sdb8
6、将分区从pv中移除 pvremove /dev/sdb{8,9}

卸载挂载磁盘
[[email protected] /]# umount /mnt/lvm1
执行resize2fs 缩小后的磁盘容量
[[email protected] /]# resize2fs /dev/vg100/lv100 500M
resize2fs 1.44.6 (5-Mar-2019)
请先运行“e2fsck -f /dev/vg100/lv100”。
[[email protected] /]# e2fsck -f /dev/vg100/lv100 e2fsck 1.44.6 (5-Mar-2019)
第 1 步:检查inode、块和大小
第 2 步:检查目录结构
第 3 步:检查目录连接性
第 4 步:检查引用计数
第 5 步:检查组概要信息
/dev/vg100/lv100:11/49152 文件(0.0% 为非连续的), 7446/184320 块

[[email protected] /]# echo $? 0
[[email protected] /]# resize2fs /dev/vg100/lv100 500M
resize2fs 1.44.6 (5-Mar-2019)
将 /dev/vg100/lv100 上的文件系统调整为 128000 个块(每块 4k)。
/dev/vg100/lv100 上的文件系统现在为 128000 个块(每块 4k)。
重新挂载并查看lv大小
[[email protected] /]# mount /dev/vg100/lv100 /mnt/lvm1 /dev/mapper/vg100-lv100 476M 780K 442M 1% /mnt/lvm1
实际大小有改变,但是lv容量未减少,需要减少lv空间,缩小lv容量
lvreduce -L -220M /dev/vg100/lv100 其他方法(lvreduce -L 500M /dev/vg100/lv100,lvresize -L 500M /dev/vg100/lv100)

LVM快照
制作LV后可以拍摄快照,当出现误操作等情况是,可以将LV还原成快照的内容

思路:
1、将lv100挂载至/mnt/lvm1,并且创建文件test.txt
2、拍摄快照
3、模拟损坏,test.txt模拟误删除
4、进行恢复快照。达到恢复数据的效果。

将lv100挂载至/mnt/lvm1,并且创建文件test.txt
[[email protected] /]# cd /mnt/lvm1 ; touch test.txt
拍摄快照
[[email protected] /]# lvcreate -L 500M -s -n backup /dev/vg100/lv100
Rounding up size to full physical extent 512.00 MiB
Logical volume "backup" created.

模拟损坏,test.txt模拟误删除
[[email protected] /]# cd /mnt/lvm1
[[email protected] lvm1]# ls lost+found test.txt
[[email protected] lvm1]# rm -rf test.txt
[[email protected] lvm1]# ls lost+found
进行恢复快照。达到恢复数据的效果。
mount /dev/vg100/backup /mnt/lvm1

(六)扩展swap分区
swap:交换分区
作用:当内存不够时,临时充当内存使用,缓解系统压力。
swap空间不能代替内存,如果解决根本问题,需要添加内存。
添加swap空间流程如下:
提前准备好硬盘
1.分区 (定义好swap分区的大小)
2.格式化
[[email protected] ~]# mkswap /dev/sda6
正在设置交换空间版本 1,大小 = 511996 KiB
无标签,UUID=266ce265-7659-4e77-971e-44de60c5ab2d
3.激活新的交换分区
[[email protected] ~]# free
total used free shared buff/cache available
Mem: 4031780 888876 108384 12016 3034520 2897392
Swap: 1023996 0 1023996
[[email protected] ~]# swapon /dev/sda6 (swapon加载,swapoff卸载)
[[email protected] ~]# free
total used free shared buff/cache available
Mem: 4031780 889560 107496 12068 3034724 2896656
Swap: 1535992 0 1535992

[[email protected] ~]# swapon -s
文件名 类型 大小 已用 权限
/dev/sda3 partition 1023996 0 -1
/dev/sda6 partition 511996 0 -2

新交换分区永久生效
方法1:
vim /etc/rc.local
swapon /dev/sda6

方法2:
vim /etc/fstab
/dev/sda6 swap swap defaults 0 0
swapon -a (加载swap分区时使用swapon -a,其他文件系统用mount -a)

实验流程:
swapoff /dev/sdb1 卸载上一个实验手动加载的swap
free -m 查看swap当前大小是2047
vim /etc/fstab 通过编辑fstab将其永久挂载
/dev/sda6 swap swap defaults 0 0 编辑swap挂载内容
swapon -a 通过该命令统一挂载fstab文件中的swap空间

挂载分区时也可以使用UUID
UUID
1、查看设备UUID
[[email protected] ~]# blkid /dev/sdb1
/dev/sdb1: UUID="a72146ea-ecdb-4927-ac34-1dab4c03b1ea" TYPE="swap" PARTUUID="5148a4ae-01"
[[email protected] ~]# lsblk /dev/sdb1
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb1 8:17 0 1G 0 part
[[email protected] ~]# lsblk --fs /dev/sdb1
NAME FSTYPE LABEL UUID MOUNTPOINT
sdb1 swap a72146ea-ecdb-4927-ac34-1dab4c03b1ea
2、加载/etc/fstab
/dev/sdb1 swap swap defaults 0 0
UUID="a72146ea-ecdb-4927-ac34-1dab4c03b1ea" swap swap defaults 0 0
3、加载fstab文件
swapon -a
free -m

修改分区编号:
[[email protected] ~]# fdisk /dev/sda
命令(输入 m 获取帮助):t
分区号 (1-6,默认 6):6
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
命令(输入 m 获取帮助):p

缩小交换分区:
1.
[[email protected] ~]# swapoff /dev/sda6 取消激活交换分区
2.
删除永久激活设置
3.删除分区
4、/etc/fstab中内容,不用的话可以注释或删除

swap第二方法:
在本地硬盘上创建swap空间
dd if=/dev/zero of=/swapfile bs=1M count=1000
mkswap /swapfile
chmod 600 /swapfile
free -m
swapon /swapfile
free -m

原网站

版权声明
本文为[Lyon-w]所创,转载请带上原文链接,感谢
https://www.cnblogs.com/wang-yongxu/p/16445348.html