当前位置: 首页 > news >正文

Linux云计算 |【第一阶段】ENGINEER-DAY3

主要内容:

LVM逻辑卷管理、VDO、RAID磁盘阵列、进程管理

一、新建逻辑卷

1、什么是逻辑卷

逻辑卷(Logical Volume)是逻辑卷管理(Logical Volume Management,LVM)系统中的一个概念。LVM是一种用于磁盘管理的系统,它允许用户更灵活地管理磁盘空间,提供了一种抽象层,使得磁盘分区可以像普通文件系统一样被管理和扩展。

在LVM中,逻辑卷是物理卷(Physical Volume)和卷组(Volume Group)之上的一个层次。以下是LVM中几个关键概念的简要解释:

  1. 物理卷(Physical Volume,PV):物理卷是LVM的基本存储单元,通常是一个硬盘分区或整个硬盘。物理卷被LVM初始化后,可以被LVM用来创建卷组。

  2. 卷组(Volume Group,VG):卷组是由一个或多个物理卷组成的集合。卷组将物理卷的空间统一管理,可以用来创建逻辑卷。

  3. 逻辑卷(Logical Volume,LV):逻辑卷是LVM系统中最终提供给用户使用的存储空间。逻辑卷可以被格式化为不同的文件系统(如ext4、XFS等),并挂载到系统中使用。

通过LVM,用户可以动态地调整逻辑卷的大小,而不需要重新分区或重新格式化硬盘。这为用户提供了极大的灵活性,特别是在需要扩展或缩小存储空间时。

例如,如果一个逻辑卷的空间不足,可以通过向卷组中添加更多的物理卷来扩展逻辑卷的大小。同样,如果需要缩小逻辑卷的大小,也可以在不中断服务的情况下完成。

1.1 LVM工作方式

在“ 分区 --> 格式化 ” 中间增加的一个逻辑层(虚拟化磁盘技术)

用途:整合分散的空间,空间支持扩大

LVM制作过程:将众多的物理卷(PV)组建成卷组(VG),再从卷组中划分出逻辑卷(LV)

注意:空闲存储必须是空闲分区或空闲磁盘,已格式化分区或挂载使用磁盘无法作为物理卷;

注意:参与逻辑卷的磁盘分区或磁盘,只能被用来作逻辑卷,不能再作为基础磁盘使用,若需要使用则删除逻辑卷和卷组,卸载开机挂载点;

注意:即使是空闲的扩展分区无法作为空闲存储创建物理卷,扩展分区只能划分逻辑分区使用;

1.2 LVM管理工具集

1.3 LVM快速部署及使用

前置步骤:准备空闲分区磁盘,至少一个空闲磁盘分区进行逻辑卷创建(例如:/dev/vdb1)

步骤1:提前进行磁盘分区

[root@localhost /]# parted /dev/vdb mkpart xixi ext4 60G 70G
信息: You may need to update /etc/fstab.
[root@localhost /]# lsblk                                                 
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0              11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda             252:0    0   20G  0 disk
├─vda1          252:1    0    1G  0 part /boot
└─vda2          252:2    0   19G  0 part├─centos-root 253:0    0   17G  0 lvm  /└─centos-swap 253:1    0    2G  0 lvm  [SWAP]
vdb             252:16   0   80G  0 disk
├─vdb1          252:17   0  9.3G  0 part
├─vdb2          252:18   0  9.3G  0 part
├─vdb3          252:19   0  9.3G  0 part
├─vdb4          252:20   0  9.3G  0 part
├─vdb5          252:21   0  9.3G  0 part
└─vdb6          252:22   0  9.3G  0 part

步骤2:创建卷组(VG)

格式:vgcreate 卷组名 空闲分区设备路径...      //卷组名可随意

例如:

[root@localhost /]# vgcreate systeamvg /dev/vdb[1-2]     //创建卷组Physical volume "/dev/vdb1" successfully created.Physical volume "/dev/vdb2" successfully created.Volume group "systeamvg" successfully created[root@localhost /]# pvscan     //查看物理卷信息PV /dev/vda2   VG centos          lvm2 [<19.00 GiB / 0    free]PV /dev/vdb1   VG systeamvg       lvm2 [<9.31 GiB / <9.31 GiB free]PV /dev/vdb2   VG systeamvg       lvm2 [<9.31 GiB / <9.31 GiB free]Total: 3 [37.61 GiB] / in use: 3 [37.61 GiB] / in no VG: 0 [0   ][root@localhost /]# vgscan     //查看卷组信息Reading volume groups from cache.Found volume group "centos" using metadata type lvm2Found volume group "systeamvg" using metadata type lvm2

步骤3:创建逻辑卷(LV)

格式:lvcreate -L 大小 -n 逻辑卷名称 卷组名

例如:

[root@localhost /]# lvcreate -L 16G -n vo systeamvg      //创建逻辑卷Logical volume "vo" created.[root@localhost /]# lvscan      //查看逻辑卷信息ACTIVE            '/dev/centos/swap' [2.00 GiB] inheritACTIVE            '/dev/centos/root' [<17.00 GiB] inheritACTIVE            '/dev/systeamvg/vo' [16.00 GiB] inherit

注意:创建逻辑卷后,系统会创建/dev/systeamvg/vo快捷方式

[root@localhost /]# lsblk
NAME             MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sr0               11:0    1  8.8G  0 rom  /run/media/root/CentOS 7 x86_64
vda              252:0    0   20G  0 disk
├─vda1           252:1    0    1G  0 part /boot
└─vda2           252:2    0   19G  0 part├─centos-root  253:0    0   17G  0 lvm  /└─centos-swap  253:1    0    2G  0 lvm  [SWAP]
vdb              252:16   0   80G  0 disk
├─vdb1           252:17   0  9.3G  0 part
│ └─systeamvg-vo 253:2    0   16G  0 lvm  
├─vdb2           252:18   0  9.3G  0 part
│ └─systeamvg-vo 253:2    0   16G  0 lvm  
├─vdb3           252:19   0  9.3G  0 part
├─vdb4           252:20   0  9.3G  0 part
├─vdb5           252:21   0  9.3G  0 part
└─vdb6           252:22   0  9.3G  0 part

注意:type类型为lvm以及分区磁盘下有vg-lv,即为有LVM逻辑卷

步骤4:格式化逻辑卷(mkfs)

例如:

[root@localhost /]# ls -l /dev/systeamvg/vo   //查看/dev/systeamvg/vo快捷方式
lrwxrwxrwx. 1 root root 7 3月  10 14:17 /dev/systeamvg/vo -> ../dm-2[root@localhost /]# mkfs.xfs /dev/systeamvg/vo     //格式化逻辑卷
meta-data=/dev/systeamvg/vo      isize=512    agcount=4, agsize=1048576 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=4194304, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
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[root@localhost /]# blkid /dev/systeamvg/vo
/dev/systeamvg/vo: UUID="fa3d4c33-d571-4686-995b-e5d6205375c7" TYPE="xfs"

步骤5:设置开机自动挂载

例如:

[root@localhost /]# mkdir /mylv    //创建挂载目录
[root@localhost /]# vim /etc/fstab      //修改fstab文件
/dev/systeamvg/vo /mylv xfs defaults 0 0
[root@localhost /]# mount -a    //检测fstab文件内容书写是否正确
[root@localhost /]# df -h       //查看正在挂载使用的设备
文件系统                  容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root  17G  4.4G   13G   26% /
devtmpfs              480M     0  480M    0% /dev
tmpfs                 496M     0  496M    0% /dev/shm
tmpfs                 496M  7.8M  488M    2% /run
tmpfs                 496M     0  496M    0% /sys/fs/cgroup
/dev/vda1             1014M  157M  858M   16% /boot
tmpfs                 100M  4.0K  100M    1% /run/user/42
tmpfs                 100M   36K  100M    1% /run/user/0
/dev/sr0               8.8G  8.8G  0 100% /run/media/root/CentOS 7 x86_64
/dev/mapper/systeamvg-vo   16G   33M   16G    1% /mylv

注意:当文件系统是/dev/mapper/*,表示为已经完成逻辑卷创建

补充:快捷方式多路径

[root@localhost /]# ls -l /dev/mapper/systeamvg-vo
lrwxrwxrwx. 1 root root 7 3月  10 14:38 /dev/mapper/systeamvg-vo -> ../dm-2

二、扩展逻辑卷大小

1、检查现有逻辑卷大小

使用lvscan命令,可以用来扫描逻辑卷的大小、卷组名,检查所在卷组的剩余空间,看是否满足扩展的需要。

注意:逻辑卷必须找之前基于创建的卷组扩展空间,卷组要查看是否满足扩展需求;

例如:

[root@localhost /]# df -h | grep vo   //查看当前挂载设备信息及文件系统使用大小
/dev/mapper/systeamvg-vo   16G   33M   16G    1% /mylv
[root@localhost /]# lvscan | grep vo  //查看逻辑卷总大小ACTIVE            '/dev/systeamvg/vo' [16.00 GiB] inherit
[root@localhost /]# vgdisplay systeamvg | grep Free    //查看卷组剩余空间大小Free  PE / Size       670 / <2.62 GiB

2、扩展逻辑卷

情况1:卷组的剩余空间充足时,可直接扩展逻辑卷

  • 格式:lvextend -L 新大小 /dev/卷组名/逻辑卷名   //推荐使用,无需计算大小
  • 格式:lvextend -L +大小 /dev/卷组名/逻辑卷名

例如:

[root@localhost /]# lvextend -L 18G /dev/systeamvg/vo     //扩展逻辑卷Size of logical volume systeamvg/vo changed from 16.00 GiB (4096 extents) to 18.00 GiB (4608 extents).Logical volume systeamvg/vo successfully resized.
[root@localhost /]# lvscan     //查看逻辑卷ACTIVE            '/dev/centos/swap' [2.00 GiB] inheritACTIVE            '/dev/centos/root' [<17.00 GiB] inheritACTIVE            '/dev/systeamvg/vo' [18.00 GiB] inherit
[root@localhost /]# df -h | grep vo
/dev/mapper/systeamvg-vo   16G   33M   16G    1% /mylv
注意:由于扩容卷组后应该通知Linux内核,否则使用df等工具时看到的仍是旧大小;[root@localhost /]# xfs_growfs /dev/systeamvg/vo     //更新文件系统大小
meta-data=/dev/mapper/systeamvg-vo isize=512    agcount=4, agsize=1048576 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4194304, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4194304 to 4718592
[root@localhost /]# df -h | grep vo
/dev/mapper/systeamvg-vo   18G   33M   18G    1% /mylv

3、扩展卷组

情况2:当卷组的剩余空间不足时,需要先扩展卷组,否则扩展逻辑卷时会报错“lnsufficient free space”

格式:vgextend 卷组名 空闲分区...

例如:

[root@localhost /]# vgextend systeamvg /dev/vdb3 /dev/vdb4  //扩展卷组Physical volume "/dev/vdb3" successfully created.Physical volume "/dev/vdb4" successfully created.Volume group "systeamvg" successfully extended
[root@localhost /]# vgscanReading volume groups from cache.Found volume group "centos" using metadata type lvm2Found volume group "systeamvg" using metadata type lvm2[root@localhost /]# lvextend -L 25G /dev/systeamvg/vo    //扩展逻辑卷Size of logical volume systeamvg/vo changed from 18.00 GiB (4608 extents) to 25.00 GiB (6400 extents).Logical volume systeamvg/vo successfully resized.
[root@localhost /]# lvscan | grep vo     //查看逻辑卷ACTIVE            '/dev/systeamvg/vo' [25.00 GiB] inherit
[root@localhost /]# df -h | grep vo    //查看挂载设备信息
/dev/mapper/systeamvg-vo   18G   33M   18G    1% /mylv
注意:由于扩容卷组后应该通知Linux内核,否则使用df等工具时看到的仍是旧大小;[root@localhost /]# xfs_growfs /dev/systeamvg/vo     //更新文件系统大小
meta-data=/dev/mapper/systeamvg-vo isize=512    agcount=5, agsize=1048576 blks=                       sectsz=512   attr=2, projid32bit=1=                       crc=1        finobt=0 spinodes=0
data     =                       bsize=4096   blocks=4718592, imaxpct=25=                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal               bsize=4096   blocks=2560, version=2=                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
data blocks changed from 4718592 to 6553600
[root@localhost /]# df -h | grep vo
/dev/mapper/systeamvg-vo   25G   33M   25G    1% /mylv

4、更新文件系统大小

对于格式化过的逻辑卷,扩容后应该通知Linux内核,否则使用df等工具时看到的仍是旧大小;

刷新文件系统容量:

  • 格式:resize2fs 设备路径      // EXT3/4设备
  • 格式:xfs_growfs 设备路径   //XFS设备

例如:

[root@localhost /]# xfs_growfs /dev/systeamvg/vo     //更新文件系统大小
...

三、逻辑卷补充知识

1)逻辑卷支持缩减

  • xfs文件系统:不支持缩减
  • ext4文件系统:支持缩减

2)卷组划分空间的单位:PE

LVM卷组的PE,默认一个PE的大小为4M(PE大小一般为2的倍数)

例如:

[root@localhost /]# vgdisplay systeamvg    //查看卷组详细信息PE Size               4.00 MiBTotal PE              9534Alloc PE / Size       6400 / 25.00 GiBFree  PE / Size       3134 / 12.24 GiB....

创建卷组的时候设置PE大小

- 格式:vgcreate -s PE大小 卷组名 空闲分区...

为已创建的卷组设置PE大小

- 格式:vgchange -s PE大小 卷组名

创建逻辑卷的时候指定PE个数

- 格式:lvcreate -l PE个数 -n 逻辑卷名 卷组名

例如1:创建一个大小为350M的逻辑卷,逻辑卷名为lvaaa

[root@localhost ~]# vgcreate -s 1M systeamvg /dev/vdc6Physical volume "/dev/vdc6" successfully created.Volume group "systeamvg" successfully created
[root@localhost ~]# vgdisplay systeamvgPE Size               1.00 MiBTotal PE              4095Alloc PE / Size       0 / 0   Free  PE / Size       4095 / <4.00 GiB
...   
[root@localhost ~]# lvcreate -L 350M -n lvaaa systeamvgLogical volume "lvaaa" created.
[root@localhost ~]# lvscan | grep lvaaaACTIVE            '/dev/systeamvg/lvaaa' [350.00 MiB] inherit

例如2:已有卷组的条件下,创建一个大小为250M的逻辑卷,逻辑卷名为lvredhat

[root@localhost /]# vgchange -s 1M systeamvgVolume group "systeamvg" successfully changed
[root@localhost /]# vgdisplay systeamvgPE Size               1.00 MiBTotal PE              38136Alloc PE / Size       25600 / 25.00 GiBFree  PE / Size       12536 / 12.24 GiB
...
[root@localhost /]# lvcreate -L 250M -n lvredhat systeamvgLogical volume "lvredhat" created.
[root@localhost /]# lvscan | grep lvredhatACTIVE            '/dev/systeamvg/lvredhat' [250.00 MiB] inherit

例如3:创建逻辑卷的时候指定PE个数为108,逻辑卷名为lvhaha

[root@localhost ~]# lvcreate -l 108 -n lvhaha systeamvgLogical volume "lvhaha" created.
[root@localhost ~]# lvscan | grep lvhahaACTIVE            '/dev/systeamvg/lvhaha' [108.00 MiB] inherit

四、逻辑卷与卷组的删除操作

1、逻辑卷的删除

  • 删除卷组的前提:基于此卷组创建的所有逻辑卷要全部删除;
  • 删除逻辑卷的前提:不能删除正在挂载使用的逻辑卷;

注意:直接删除卷组,会导致逻辑卷异常、扇区损坏等,必须一层层逐步删除;

格式:lvremove 设备

例如:

[root@localhost /]# lvscanACTIVE            '/dev/centos/swap' [2.00 GiB] inheritACTIVE            '/dev/centos/root' [<17.00 GiB] inheritACTIVE            '/dev/systeamvg/vo' [25.00 GiB] inheritACTIVE            '/dev/systeamvg/lvredhat' [250.00 MiB] inherit
[root@localhost /]# lvremove /dev/systeamvg/vo   Logical volume systeamvg/vo contains a filesystem in use.   //逻辑卷正在使用,需卸载[root@localhost /]# umount /dev/systeamvg/vo     //卸载挂载点
[root@localhost /]# lvremove /dev/systeamvg/vo
Do you really want to remove active logical volume systeamvg/vo? [y/n]: yLogical volume "vo" successfully removed
[root@localhost /]# lvremove /dev/systeamvg/*
Do you really want to remove active logical volume systeamvg/lvredhat? [y/n]: yLogical volume "lvredhat" successfully removed
[root@localhost /]# lvscanACTIVE            '/dev/centos/swap' [2.00 GiB] inheritACTIVE            '/dev/centos/root' [<17.00 GiB] inherit
[root@localhost /]# vim /etc/fstab     //删除fstab文件的逻辑卷开机自动挂载信息

2、卷组的删除

格式:vgremove 卷组名

例如:

[root@localhost /]# vgremove systeamvgVolume group "systeamvg" successfully removed
[root@localhost /]# vgscanReading volume groups from cache.Found volume group "centos" using metadata type lvm2

五、RAID磁盘阵列

需要服务器硬件RAID卡,用来整合硬盘为整体再部署操作系统

  • RAID,Redundant Arrays of Inexpensive Disks
  • 通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘
  • 阵列的价值:提升I/O效率、硬件级别的数据冗余
  • 不同RAID级别的功能、特性各不相同

① RAID 0,条带模式

  • 同一个文档分散存放在不同磁盘
  • 并行写入以提高效率,一般存放缓存数据
  • 至少需要两块磁盘组成,磁盘利用率100%
  • 缺点:假如其中某一磁盘损坏则资料丢失50%,可靠性不高

② RAID 1,镜像模式

  • 一个文档复制成多份,分别写入不同磁盘
  • 多份拷贝提高可靠性,效率无提升
  • 至少需要两块磁盘组成,磁盘利用率50%
  • 缺点:效率不高

③ RAID5,高性价比模式

  • 相当于RAID0和RAID1的折中方案
  • 需要至少一块磁盘的容量来存放校验数据
  • 至少需要三块磁盘组成,磁盘利用率n-1/n

④ RAID6,高性价比/可靠模式

  • 相当于扩展的RAID5阵列,提供2份独立校验方案
  • 需要至少两块磁盘的容量来存放校验数据
  • 至少需要四块磁盘组成,磁盘利用率n-2/n

⑤ RAID 0+1/RAID 1+0

  • 整合RAID 0、RAID 1的优势
  • 并行存取提高效率、镜像写入提高可靠性
  • 至少需要四块磁盘组成,磁盘利用率50%

RAID各级别特点对比:

RAID阵列实现方式:

1)硬RAID:由RAID控制卡管理阵列

- 主板 -> 阵列卡 -> 磁盘 -> 操作系统 -> 数据

2)软RAID:由操作系统来管理阵列

- 主板 -> 磁盘 -> 操作系统 -> RAID软件 -> 数据

六、Systemd进程管理

Systemd 是一个系统和服务管理器,用于启动和管理 Linux 系统中的进程和服务。它是 Linux 发行版中广泛采用的初始化系统,取代了传统的 SysV init 脚本。Systemd 的主要目标是提高系统的启动速度,并提供更强大的并行化能力,同时提供一套全面的系统管理工具。

以下是 Systemd 的一些关键特性:

  1. 并行化启动:Systemd 能够并行启动系统服务,从而显著加快系统的启动时间。

  2. 依赖关系管理:Systemd 通过服务单元文件(.service)定义服务之间的依赖关系,确保服务按照正确的顺序启动和停止。

  3. 进程管理:Systemd 不仅可以启动和管理服务,还可以监控这些服务的运行状态,并在服务失败时自动重启它们。

  4. 日志管理:Systemd 集成了日志服务(journald),提供了一个集中的日志管理系统,可以方便地查看和分析系统日志。

  5. 单元文件:Systemd 使用单元文件来定义和管理各种类型的系统资源,如服务(.service)、套接字(.socket)、设备(.device)、挂载点(.mount)等。

  6. 定时任务:Systemd 提供了定时器单元(.timer),可以用来替代 cron 进行定时任务的管理。

  7. 挂载和自动挂载:Systemd 可以管理文件系统的挂载和自动挂载,简化了文件系统的管理。

  8. 网络管理:Systemd 提供了网络管理工具(NetworkManager),可以方便地管理网络配置和连接。

- 程序:静态没有执行的代码,占用硬盘空间

- 进程:动态执行的代码,占用CPU与内存资源(计算资源)

- 进程分为:父进程与子进程,以树型结构展示;

- 进程编号:PID

- 所有进程的父进程:systemd(PID永远为1,又称为上帝进程)


1)pstree查看进程(Processes Tree)

格式:pstree [选项] [PID或用户名]

常用命令选项:

  • [-a] 显示完整的命令行
  • [-p] 列出对应进程的PID编号

例如:

[root@svr7 ~]# pstree -p lisi
bash(7341)───vim(7383)
[root@svr7 ~]# pstree -a lisi
bash└─vim haha.txt
[root@svr7 ~]# pstree -ap lisi
bash,7341└─vim,7383 haha.txt

2)ps查看进程快照(Processes Snapshot)

格式:ps [选项]...

常用命令选项:

[ aux ]

  • 显示当前终端所有进程(a)
  • 当前用户在所有终端下的进程(x)
  • 以用户格式输出(u)

[ -elf ] //注意该选项有加 【-】

  • 显示系统内所有进程(-e)
  • 以长格式输出信息(-l)
  • 包括最完整的进程信息(-f)

① ps aux 操作

列出正在运行的所有进程,显示进程信息非常详细

用户 进程ID %CPU %内存 虚拟内存 固定内存 终端 状态 起始时间 CPU时间 程序指令

② ps -elf 操作

列出正在运行的所有进程,显示进程父进程信息

PPID为父进程的PID

例如:

[root@pc207 ~]# ps aux
USER       PID %CPU %MEM    VSZ   RSS TTY      STAT START   TIME COMMAND
root         1  0.0  0.4 193708  5048 ?        Ss   11:07   0:02 /usr/lib/system
root         2  0.0  0.0      0     0 ?        S    11:07   0:00 [kthreadd]
...
root      6312  0.0  0.0 107948   352 ?        S    16:36   0:00 sleep 60
root      6313  0.0  0.1 155324  1880 pts/1    R+   16:37   0:00 ps aux

例如:

[root@pc207 ~]# ps -elf
F S UID        PID  PPID  C PRI  NI ADDR SZ WCHAN  STIME TTY          TIME CMD
4 S root         1     0  0  80   0 - 48427 ep_pol 11:07 ?        00:00:02 /usr/
1 S root         2     0  0  80   0 -     0 kthrea 11:07 ?        00:00:00 [kthr
1 S root         3     2  0  80   0 -     0 smpboo 11:07 ?        00:00:00 [ksof
...
0 S root      6331   777  0  80   0 - 26987 hrtime 16:38 ?        00:00:00 sleep
0 R root      6332  4976  0  80   0 - 38831 -      16:38 pts/1    00:00:00 ps -e
...

例如:请计算正在运行的进程有多少个?

[root@pc207 ~]# ps aux | wc -l
215
[root@pc207 ~]# ps -elf | wc -l
215

3)top 交互式工具

用途:进程动态排名

格式:top [-d 刷新秒数] [-U 用户名]

快捷命令:

  • 按大写P进行CPU排序
  • 按大写M进行内存排序

TOP界面解释汇总1:

TOP界面解释汇总2:

详细参考:top命令解释_3 running, 342 sleeping, 0 stopped, 0 zombie %cpu(-CSDN博客

4)pgrep检索进程(Process Grep)

格式:pgrep [选项]... 查询条件

常用命令选项

  • [-l] 输出进程名,而不仅仅是 PID
  • [-U] 检索指定用户的进程
  • [-x] 精确匹配完整的进程名

例如:

[root@svr7 ~]# pgrep -l a    //输出包含a的进程名,而不仅仅是 PID(生序)
2 kthreadd
7 migration/0
10 lru-add-drain
11 watchdog/0
...
[root@svr7 ~]# pgrep -U lisi    //查看用户进程(类似pstree -p)
7341
7383
[root@svr7 ~]# pstree -p lisi
bash(7341)───vim(7383)
[root@svr7 ~]# pgrep -x crond     //精确匹配完整的进程名
1132
[root@svr7 ~]# pgrep -lx crond
1132 crond
[root@svr7 ~]# pgrep -lx cron    //精确匹配完整的进程名,cron非进程名

1、控制进程(进程的前后台调度)

  1. 前台启动:输入正常命令行,运行期间占用当前终端;
  2. 后台启动:在命令行末尾添加“&”符号,不占用当前终端;

指令:

① &符号 //正在运行的状态放入后台

格式:执行命令程序 &

② Ctrl + z 组合键 //挂起当前进程(暂停并转入后台)

命令:

  • [ jobs ] //查看后台任务列表
  • [ fg 后台编号... ] //将后台任务恢复到前台运行
  • [ bg 后台编号... ] //激活后台被挂起的任务

例如:

[root@localhost ~]# yum -y  install  xorg-x11-apps[root@svr7 ~]# xeyes &    //正在运行的状态放入后台
[1]   完成                  xeyes
[root@localhost ~]# jobs    //查看后台进程信息
[1]+  运行中               xeyes &
[root@localhost ~]# fg  1   //让后台编号为1 的进程恢复到前台运行
xeyes[root@localhost ~]# xeyes
^Z                //按Ctrl+z  暂停放入后台
[1]+  已停止               xeyes
[root@localhost ~]# jobs     //查看后台进程信息
[1]+  已停止               xeyes
[root@localhost ~]# bg 1    //激活后台编号为1 的进程继续运行
[1]+ xeyes &
[root@localhost ~]# jobs    //查看后台进程信息
[1]+  运行中               xeyes &
[root@localhost ~]# fg  1   //让后台编号为1 的进程恢复到前台运行
xeyes
^C           //按Ctrl+c结束程序

2、杀死进程

干掉进程的不同方法:

Ctrl + C 组合键,中断当前命令程序

  • 格式:kill [-9] PID...
  • 格式:kill [-9] %后台任务编号
  • 格式:killall [-9] 进程名... //停止程序需要+[-9]
  • 格式:pkill [-9] 查找条件

例如:

[root@svr7 ~]# xeyes &
[1] 8410
[root@svr7 ~]# xeyes &
[2] 8417
[root@svr7 ~]# xeyes &
[3] 8424
...[root@svr7 ~]# kill 8410
[1]   已终止               xeyes
[root@svr7 ~]# kill -9 8417
[2]   已杀死               xeyes[root@svr7 ~]# jobs
[3]   运行中               xeyes &
[4]   运行中               xeyes &
[5]   运行中               xeyes &
[6]-  运行中               xeyes &
[7]+  已停止               xeyes[root@svr7 ~]# killall -9 xeyes
[3]   已杀死               xeyes
[4]   已杀死               xeyes
[5]   已杀死               xeyes
[6]-  已杀死               xeyes
[7]+  已杀死               xeyes杀死一个用户开启的所有程序(强制踢出一个用户)
例如:# killall -9 -u lisi

七、VDO基本概念(了解内容)

1、VDO(Virtual Date Optimizer虚拟数据优化器)

一个内核模块,目的是通过重删减少磁盘的空间占用,以及减少复制带宽;VDO是基于块设备层之上的,也就是在原设备基础上映射出mapper虚拟设备,然后直接使用即可;

# 所需软件包
yum -y install vdo kmod-kvdo

1)重复数据删除

输入的数据会判断是不是冗余数据;判断为重复数据的部分不会被写入,然后对源数据进行更新,直接指向原始已经存储的数据块即可;

2)压缩

对每个单独的数据块进行处理;

2、制作VDO卷基础命令

1)vdo基本操作:参考man vdo(全文查找/example)

  • vdo  create  --name=VDO卷名称  --device=设备路径 --vdoLogicalSize=逻辑大小
  • vdo  list
  • vdo  status  -n  VDO卷名称
  • vdo  remove  -n  VDO卷名称
  • vdostatus  [--human-readable] [/dev/mapper/VDO卷名称]

2)VDO卷的格式化加速(跳过去重分析):

  • mkfs.xfs  –K   /dev/mapper/VDO卷名称
  • mkfs.ext4  -E  nodiscard  /dev/mapper/VDO卷名称

小结:

本篇章节为【第一阶段】ENGINEER-DAY3 的学习笔记,可以初步了解到 LVM逻辑卷管理、VDO、RAID磁盘阵列、进程管理。除此之外推荐参考相关学习网址:

  • Linux fdisk 命令 | 菜鸟教程

Tip:毕竟两个人的智慧大于一个人的智慧,如果你不理解本章节的内容或需要相关笔记、视频,可私信小安,请不要害羞和回避,可以向他人请教,花点时间直到你真正的理解

相关文章:

Linux云计算 |【第一阶段】ENGINEER-DAY3

主要内容&#xff1a; LVM逻辑卷管理、VDO、RAID磁盘阵列、进程管理 一、新建逻辑卷 1、什么是逻辑卷 逻辑卷&#xff08;Logical Volume&#xff09;是逻辑卷管理&#xff08;Logical Volume Management&#xff0c;LVM&#xff09;系统中的一个概念。LVM是一种用于磁盘管理…...

springboot 实体类加注解校验入参数据

导入的是springboot自身的依赖包 import org.springframework.validation.annotation.Validated; import org.springframework.web.bind.annotation.*; import javax.validation.Valid;...

关于 Qt输入法在arm特定的某些weston下出现调用崩溃 的解决方法

若该文为原创文章&#xff0c;转载请注明原文出处 本文章博客地址&#xff1a;https://hpzwl.blog.csdn.net/article/details/140423667 长沙红胖子Qt&#xff08;长沙创微智科&#xff09;博文大全&#xff1a;开发技术集合&#xff08;包含Qt实用技术、树莓派、三维、OpenCV…...

Android Studio关于Gradle及JDK问题解决

1.Android Studio 版本如&#xff1a;Android Studio Koala | 2024.1.1 2.Gradle 版本为&#xff1a;8.7 3.JDK 版本为&#xff1a;17 以上这三个必须匹配&#xff0c;具体可以看官网Android Studio 版本说明&#xff08;https://developer.android.google.cn/studio?hlzh-…...

Leetcode 205. 同构字符串

205. 同构字符串 Leetcode 205. 同构字符串 一、题目描述二、我的想法三、其他人的题解 一、题目描述 给定两个字符串 s 和 t &#xff0c;判断它们是否是同构的。 如果 s 中的字符可以按某种映射关系替换得到 t &#xff0c;那么这两个字符串是同构的。 每个出现的字符都应…...

多口适配器,给您的生活增添便利

随着科技的快速发展&#xff0c;我们的生活已离不开各种各样的电子设备&#xff0c;智能手机、平板电脑、智能手表、无线耳机……它们共同构建了我们丰富多彩的数字生活。然而&#xff0c;面对众多设备的充电需求&#xff0c;传统的单一充电口已难以满足现代人的使用习惯。在这…...

探索现代Web开发:WebKit的剪贴板API革新

探索现代Web开发&#xff1a;WebKit的剪贴板API革新 在当今的Web开发领域&#xff0c;用户体验的提升是开发者们不懈追求的目标。其中一个关键的交互点便是剪贴板操作&#xff0c;它允许用户在网页与本地系统之间复制和粘贴数据。WebKit&#xff0c;作为Safari、QQ浏览器等众多…...

【电路笔记】-放大器的频率响应

放大器的频率响应 文章目录 放大器的频率响应1、概述2、定义3、电容器的影响4、低频响应5、高频响应6、总结1、概述 对于任何电子电路来说,放大器的行为都会受到其输入端子上信号频率的影响。 该特性称为频率响应。 频率响应是放大器最重要的特性之一。 在放大器设计的频率范…...

Artix7系列FPGA实现SDI视频编解码,基于GTP高速接口,提供3套工程源码和技术支持

目录 1、前言工程概述免责声明 2、相关方案推荐本博已有的 SDI 编解码方案本方案在Xilinx--Kintex系列FPGA上的应用本方案在Xilinx--Zynq系列FPGA上的应用 3、详细设计方案设计原理框图SDI 输入设备Gv8601a 均衡器GTP 高速接口-->解串与串化SMPTE SD/HD/3G SDI IP核BT1120转…...

NET 语言识别,语音控制操作、语音播报

System.Speech. 》》System.Speech.Synthesis; 语音播报 》》System.Speech.Recognition 语音识别 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Linq; using System.Speech.Recog…...

Unity 调试死循环程序

如果游戏出现死循环如何调试呢。 测试脚本 我们来做一个测试。 首先写一个死循环代码&#xff1a; using System.Collections; using System.Collections.Generic; using UnityEngine;public class dead : MonoBehaviour {void Start(){while (true){int a 1;}}}Unity对象设…...

视频监控平台LntonCVS视频融合共享平台智慧安防视频监控汇聚应用方案

LntonCVS是一款功能强大且灵活部署的安防视频监控平台。它支持多种主流标准协议&#xff0c;包括GB28181、RTSP/Onvif、RTMP等&#xff0c;同时能够兼容海康Ehome、海大宇等厂家的私有协议和SDK接入。该平台不仅提供传统的安防监控功能&#xff0c;还支持接入AI智能分析&#x…...

【论文阅读笔记】Hierarchical Neural Coding for Controllable CAD Model Generation

摘要 作者提出了一种CAD的创新生成模型&#xff0c;该模型将CAD模型的高级设计概念表示为从全局部件排列到局部曲线几何的三层神经代码的层级树&#xff0c;并且通过指定目标设计的代码树来控制CAD模型的生成或完成。具体而言&#xff0c;一种带有“掩码跳过连接”的向量量化变…...

Unity扩展SVN命令

可以直接在unity里右键文件提交和查看提交记录 顶部菜单栏上回退和更新整个unity工程 SvnForUnity.CS 记得要放在Editor文件夹下 using System.Collections; using System.Collections.Generic; using System.Diagnostics; using System.IO; using UnityEditor; using Unity…...

「实战应用」如何用DHTMLX将上下文菜单集成到JavaScript甘特图中(三)

DHTMLX Gantt是用于跨浏览器和跨平台应用程序的功能齐全的Gantt图表。可满足项目管理应用程序的所有需求&#xff0c;是最完善的甘特图图表库。 DHTMLX Gantt是一个高度可定制的工具&#xff0c;可以与项目管理应用程序所需的其他功能相补充。在本文中您将学习如何使用自定义上…...

微服务保护

1、什么是微服务保护 微服务保护是指在微服务架构中采取的一系列措施&#xff0c;以确保各个服务的稳定性、可靠性和安全性。微服务是一种将应用程序作为一套小服务开发的方法&#xff0c;每个服务运行在其独立的进程中&#xff0c;并通常围绕特定的业务能力进行构建。微服务保…...

Python语言的优势所在

Python语言具有多个显著的优势&#xff0c;这些优势使得它在软件开发、数据分析、机器学习、Web开发等众多领域广受欢迎。以下是Python语言的一些主要优势&#xff1a; 简单易学&#xff1a;Python的语法清晰简洁&#xff0c;接近自然语言&#xff0c;易于理解和编写。对于初学…...

npm install时报错 reason: certificate has expired

在VS code中导入新项目&#xff0c;执行npm install时报错&#xff1a; npm warn old lockfile Could not fetch metadata for antv/g3.4.10 FetchError: request to https://registry.npm.taobao.org/antv%2fg failed, reason: certificate has expirednpm warn old lockfile …...

价格战再起:OpenAI 发布更便宜、更智能的 GPT-4o Mini 模型|TodayAI

OpenAI 今日推出了一款名为 GPT-4o Mini 的新模型&#xff0c;这款模型较轻便且成本更低&#xff0c;旨在为开发者提供一个经济实惠的选择。与完整版模型相比&#xff0c;GPT-4o mini 在成本效益方面表现卓越&#xff0c;价格仅为每百万输入 tokens 15 美分和每百万输出 tokens…...

从0开始对时间序列模型ACF和PACF的理解(以股价预测为例子)

目录 ACF模型选择问题ACF处理问题 PACF&#xff08;偏自相关系数&#xff09;模型选择 ACF 先了解一下概念&#xff0c;我不喜欢用公式套话讲。 ACF&#xff08;自相关函数&#xff09;&#xff1a;就是看看当前的股票价格和之前的股票价格之间有没有关系。比如说&#xff0c;…...

MybatisPlus(MP)基础知识全解析

MyBatis-Plus&#xff08;简称MP&#xff09;是一个基于Java的持久层框架&#xff0c;它在MyBatis的基础上提供了许多实用的功能增强&#xff0c;使得开发者可以更加便捷地进行数据库操作。本文将介绍MyBatis-Plus的基础知识&#xff0c;包括其特性、核心组件以及如何使用它进行…...

前端组件化实践:Vue自定义加载Loading组件的设计与实现

摘要 随着前端技术的飞速发展&#xff0c;组件化开发已成为提高开发效率、降低维护成本的重要方法。本文介绍了前端Vue自定义加载Loading组件的设计思路与实现过程&#xff0c;该组件通过设置gif动画实现加载效果&#xff0c;可广泛应用于页面请求加载场景。通过该组件的实践&…...

LLaMA 背景

什么是LLaMA&#xff1f; 模型介绍&#xff1a;LLaMA是Meta开发的语言模型&#xff0c;旨在推动开放科学和人工智能的实践。 参数范围&#xff1a;这些模型的参数数量从7B到65B不等&#xff0c;覆盖了不同规模的需求。 训练数据&#xff1a;LLaMA模型是在数万亿个公开数据集的…...

硅谷裸机云多IP服务器怎么样?

硅谷裸机云多IP服务器是一种在硅谷地区提供的、具有多个IP地址的裸机云服务器。这种服务器结合了裸机服务器的高性能和云服务器的灵活性&#xff0c;同时提供了多个IP地址&#xff0c;为用户的各种需求提供了支持。以下是关于硅谷裸机云多IP服务器的一些详细信息&#xff0c;ra…...

Python+Django+MySQL的新闻发布管理系统【附源码,运行简单】

PythonDjangoMySQL的新闻发布管理系统【附源码&#xff0c;运行简单】 总览 1、《新闻发布管理系统》1.1 方案设计说明书设计目标工具列表 2、详细设计2.1 登录2.2 程序主页面2.3 新闻新增界面2.4 文章编辑界面2.5 新闻详情页2.7 其他功能贴图 3、下载 总览 自己做的项目&…...

实战项目:仿muduo库实现并发服务器

目录 项目初始与项目演示HTTP服务器基础认识Reactor模式基础认识单Reactor单线程模式认识单Reactor多线程模式认识多Reactor多线程模式认识 目标定位总体大模块划分server模块的管理思想Buffer子模块Socket子模块Channel子模块Connection子模块Acceptor子模块TimerQueue子模块P…...

提高Java程序效率:ImmutableList、Stream API 和 JSON序列化实战指南

常用列表构建方法&#xff1a; 1.ImmutableList.of() &#xff1a; 静态方法、不可变的列表 可以接受任意数量的参数&#xff0c;并将它们作为元素添加到新创建的列表中&#xff0c;但是一旦创建&#xff0c;集合的内容就不能被改变。在多线程环境中非常有用&#xff0c;因为…...

[CP_AUTOSAR]_分层软件架构_接口之通信模块交互介绍

目录 1、协议数据单元(PDU)传输2、通信模块的案例2.1、SDU、 PCI & PDU2.2、通信模块构成2.3、从数据传输的角度看Communication2.4、Communication中的接口 在前面 《关于接口的一些说明》 以及  《Memory软件模块接口说明》 中&#xff0c;简要介绍了CP_AUTOSAR分层…...

C语言 ——— 浮点数类型 在 内存中 的 存储模式

目录 浮点数存储规则 单\双精度浮点数 存储 S、M、E 的布局 有效数字M 和 指数位E 的特殊规定 浮点数在内存中是否存储的S、M、E 浮点数存储规则 根据国际标准IEEE754&#xff08;电气和电子工程协会&#xff09;规定&#xff1a;任意一个 浮点数F的二进制 都可以表示成…...

socket 收发TCP/UDP

一、c 个人测试记录&#xff0c;有问题还请指出&#xff0c;谢谢 参考&#xff1a;C开发基础之网络编程WinSock库使用详解TCP/UDP Socket开发_c udp使用什么库-CSDN博客 代码中Logger测试见文章&#xff1a; c中spdlog的使用/python中logger的使用-CSDN博客 1、main.cpp 收…...

假网站怎么做呢/怎样申请自己的电商平台

某超市促销,举办空酒瓶和酒瓶盖换酒活动,规定 2 个空瓶或 4 个瓶盖可换一瓶酒。若小明最开始买了 n 瓶酒,则他总共能喝到多少瓶酒? n = int(input()) ########## Begin ##########cap = n bottle = nwhile (cap >= 4) or (bottle >= 2...

wordpress跟换域名/关键词排名优化软件价格

名字查找 每当一个变量或者一个对象出现&#xff0c;编译器都会进行名字查找&#xff08;name lookup&#xff09;&#xff0c;以确认这个变量或对象的具体属性。一般情况下&#xff0c;程序会从变量出现的地方开始向上查找&#xff0c;由内向外查找各级作用域直到全局作用域&a…...

怎么做淘宝客导购网站/渠道推广策略

最近的工程需要搞一下并行&#xff0c;打算用一下cuda。开这个系列希望能够把这个过程中学到的有关并行的知识以及一些问题。 这一次主要介绍下如何在cuda并行中使用vector&#xff0c;包括空间分配与使用。 vector其实是可以被看做一个动态数组的&#xff0c;其存储的分配也…...

专业网站制作公司名称/百度关键词优化大

<HTML> <HEAD> <TITLE>给数组增加元素</TITLE> </HEAD> <?$Cities[] "<B>北京</B>"; //等同于$Cities[0] "北京"$Cities[] "<B>天津</B>"; //等同于$Cities[1] "天津…...

泉州做网站优化哪家好/淮北seo

该楼层疑似违规已被系统折叠 隐藏此楼查看此楼debian系统目前支持Usb camera是没有问题&#xff0c;走UVC功能接口。那么mipi 接口camera和并口接口的camera&#xff0c;在Debian系统怎么设置呢&#xff0c;其实原理一样&#xff0c;也走uvc接口封装函数.下面深圳视壮给大家简单…...

男生跟男生做口视频网站/优化网站技术

原标题&#xff1a;Linux下iptables防火墙用法规则详解管理网络流量是系统管理员必需处理的最棘手工作之一&#xff0c;我们必需规定连接系统的用户满足防火墙的传入和传出要求&#xff0c;以最大限度保证系统免受。很多用户把 Linux 中的iptables当成一个防火墙&#xff0c;从…...