Linux系统及操作 (07)
逻辑卷管理(LVM)
-
逻辑卷 Logical Volume Manager:
- 整合分散的空间
- 空间支持扩大
- /dev/mapper/*
-
支持动态升级(在线升级),不停机维护。
-
逻辑卷制作过程:众多的物理卷**(PV)组成卷组(VG),从VG中划分出逻辑卷(LV)**。
-
LVM的组成:
在 分区——>格式化 中间增加的一个逻辑层
----零散空闲储存--------整合的虚拟磁盘--------虚拟的分区
----物理卷(PV)---------卷组(VG)-----------逻辑卷(LV)
-
物理卷-PV :是LVM的基本存储逻辑块,是LVM构建的实际硬件/存储系统。
-
物理块-PE :VG中最小的连续区域(默认为4M,可修改),是PV的一部分,可分配给LV。
[ vgchange -s 1M 卷组名 ] #对应卷组下PE的大小被修改为1M
-
卷组-VG :由PV组成,可以在卷组上创建LVM分区,由PV组成。
-
逻辑卷-LV :可供系统使用的最终元设备。在VG中创建和管理,由PE组成的虚拟分区。
显示为**[ /dev/name_vg/name_lv ],通常再其上可以创建文件系统**。
-
-
LVM的优缺点
- 优点
- 灵活性高
- 将多块硬盘看做一块大硬盘,可以创建跨越众多硬盘空间的分区
- 空间不足的时候在动态调整它的大小
- 可以在线对逻辑卷(LV)和卷组(VG)进行创建,删除,调整大小等操作
- 无需重新启动服务
- 允许创建快照,可以保存文件系统的备份
- 支持各种设备映射目标
- 缺点
- 依赖硬盘,如硬盘出问题则全部出问题。
- 只能集结一台电脑上的空间。
- 逻辑卷的读写速度不高。
- 在系统设置时需要更复杂的额外步骤。
- Windows不支持LVM,若使用双系统,你将无法在Windows上访问LVM分区。
- 优点
新建逻辑卷
LVM 逻辑卷管理
-
最低要求是整块分区,最优选是未格式化制作的分区。需要全新的完整的分区。
-
整合的多块分区类似真的硬盘,称为虚拟硬盘。
-
主分区和逻辑分区可参与制作,扩展分区不能参与。
-
LVM 管理工具集
__[pv*]__物理卷相关 __[vg*]__卷组相关 __[lv*]__逻辑卷相关 [*s] 扫描 __[*create]__创建 * 卷名 分区 * 卷名 分区 * -L 大小 -n 名字 卷组名 __[*display]__显示 * 卷名 * 卷名 * 卷名 __[*remove]__删除 * 卷名 * 卷名 * 卷名 __[*extend]__扩展 * 卷组 分区 * -L 最终大小 逻辑卷路径 __[*rename]__改名 * 旧名 新名
可省略:[pvcreate]创建物理卷
-
格式 :[ pvcreate 卷名 分区地址 ]
pvcreate systempv /dev/vdb1
[vgcreate]创造卷组
-
格式 :[ vgcreate 卷名 空闲分区… ]
vgcreate systemvg /dev/vdb1 #把 vdb1 分区给 systemvg 组卷。
vgcreate systemvg /dev/vdb[1-2] #把 vdb1和vdb2 分区给 systemvg 组卷。
vgcreate -s 1M systemvg /dev/vdb1
#把 vdb1 分区给 systemvg 组卷。PE为 1M 大小。
[lvcreate]创造逻辑卷
- 格式 :[ lvcreate -L 大小 -n 名字 卷组名 ]
lvcreate -L 16G -n vo systemvg # 通过 systemvg 卷组创造一个16G的叫 vo 的逻辑卷。
lvcreate -l 16 -n vo systemvg # 通过卷组创造16个PE组成的叫 vo 的逻辑卷。
- 逻辑卷实际存在于**[ /dev/dm* ]**
- 快捷方式在 [ /dev/卷组/逻辑卷 ] 或 [ /dev/mapper/卷组-逻辑卷 ] 。
- 逻辑卷创造后需要格式化然后挂用nginx这个VG空间创建名称为vlan的逻辑卷,LV容量为8G载使用
- mkfs.xfs /dev/systemvg/vo #格式化xfs文件类型
- blkid /dev/systemvg/vo #查看格式化类型
- vim /etc/fstab #开机自动挂载
- mount -a #检测fstab文件内容是否正确
- df -h /mylv #查看正在挂载使用的设备
扩展逻辑卷
卷组有足够的剩余空间
-
[ lvextend ] : lvextend -L 最终大小 逻辑卷路径
[ lvextend -L 18G /dev/systemvg/vo ] #把 vo 逻辑卷扩展到 18G。
[ lvextend -l 10 /dev/systemvg/vo ] #扩展到 10 个PE大小。#此时原先的大小 16G 和 新的大小 18G 冲突。
#格式化文件系统了 16G,现在空间的大小是18G。
#多出来的空间需要同类型的格式化文件系统。
xfs文件系统: xfs_growfs
ext4文件系统:resize2fs
[ xfs_growfs /dev/systemvg/vo ] #把多出来的空间格式化
卷组没有足够的剩余空间
-
需要先扩展 vg 卷组,将足够的 pv 物理卷填入。
-
[ vgextend ] : vgextend 卷组名 空闲分区
[ vgextend systemvg /dev/vdb5 ] #把 sdb5 分区当作物理卷放入 systemvg 卷组
[ vgextend systemvg /dev/vdb{3,5,6} ] #把 sdb3,5,6 分区都放入 systemvg 卷组
逻辑卷的删除
-
[ lvremove 逻辑卷目录]
-
不能卸载正在使用的逻辑卷
-
需先卸载逻辑卷 [ umount ]
-
删除开机自动挂载的配置
逻辑卷的缩减
-
xfs文件系统:不支持缩减
-
ext4文件系统:支持缩减
进程管理
-
程序:静态未执行的代码。 #占用硬盘空间。
-
进程:内存中正在运行的代码。 #占用CPU与内存。
-
PID :Linux系统给予每一个进程的识别码。(无法指示)
- 数字越小表示运行时间越早
-
父进程与子进程
-
树形结构
查看进程
-
[ pstree ] = Processes Tree
-
树状图的树根是 [ systemd ] ------上帝进程,最初的进程,所有进程的父进程。
-
格式 :[ pstree 选项 PID或用户名 ]
-
[ -a ] :显示完整的命令行。运行什么命令产生的进程。
-
[ -p ] : 列出对应进程的PID编号
-
-
**[ ps ]**进程快照 :Processes Snapshot
-
格式 :ps [选项]…
-
[ aus ] :
- [ a ]-------显示当前终端所有进程
- [ x ]--------当前用户再所有终端下的进程
- [ s ]--------以用户格式输出
-
用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令
-
[ -elf ] :
-
[ -e ]-------显示系统内所有进程
-
[ -l ]-------以长格式输出信息
-
-
[ -f ]-------包括父进程在内最完整的进程信息
- 显示信息中PPID为 父进程
-
**[ top ]**动态查看
-
格式 :top [ -d 刷新秒数 ] [ -U 用户名 ]
-
查看中可以 :
-
[ P ]-------进行CPU排序
-
[ M ]------进行内存排行
-
[ q ]-------退出
-
-
-
[ pgrep ] Process Grep
- 可过滤进程名字,显示其PID
- 格式 :[ pgrep 选项… 查询条件 ]
- [ -l ]------输出进程名字
- [ -u ]------检查指定用户的进程
- [ -x ]------精准匹配完整的进程名
控制进程
进程的前后台调度
- 前台启动
- 输入正常命令行,运行期间占用当前终端。
- 后台启动
- 在命令行末尾添加 [ & ] 符号,不占用当前终端。
- 控制进程
- [ & ]--------正在运行的状态放入后台(表示AND)
- [ Ctrl + z ]--------挂起当前进程(暂停并转入后台)
- [ jobs ]--------查看后台任务列表
- [ fg ]--------将后台任务恢复到前台运行
- [ bg ]--------激活后台被挂起的任务
结束进程
- Ctrl+c 组合键,中断当前命令程序
- kill [-9] PID… 、kill [-9] %后台任务编号
- killall [-9] 进程名…
- pkill [-9] 查找条件 #包含就算
用户提权
-
sudo提权 : 可以让普通用户以root身份执行某些操作
-
[ sudo -l ] 查看当前用户权限
-
vim /etc/sudoers #sudo提权主配置文件
-
[ visudo ] === [ vim ] 可以检查语法错误
- bob ALL=(root) /usr/bin/mkdir,/usr/bin/cat
- 普通用户 所有的主机=(变成的身份) 可以执行的命令程序
-
取消密码验证
-
visudo
- bob ALL=(root) NOPASSWD:/usr/bin/mkdir,/usr/bin/cat
-