linux交换分区和逻辑卷

交换分区

查看交换分区: [root@localhost ~]# free -m ---查看交换分区

1、流程:

(1)分区

例:创建分区

[root@localhost ~]# fdisk /dev/sda
Command (m for help): n --- 创建分区
Value out of range.
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): p --- 主分区
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +2G
Command (m for help): p ---打印分区信息

Device     Boot Start     End Sectors Size Id Type
/dev/sda1        2048 4196351 4194304   2G 83 Linux --- 83对应linux类型
Command (m for help): l --- 查看分区类型

 0  Empty           24  NEC DOS         81  Minix / old Lin bf  Solaris        
 1  FAT12           27  Hidden NTFS Win 82  Linux swap / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
........

(2)可选:更改分区类型 --- t

例2:更改分区类型

Command (m for help): t --- 更改分区类型
Selected partition 1 --- 目前只有一个,默认修改一号分区类型
Hex code (type L to list all codes): 82 --- 将分区类型修改为82
Changed type of partition 'Linux' to 'Linux swap / Solaris'. --- 分区类型已成功修改为linux交换分区

Command (m for help): p

Device     Boot Start     End Sectors Size Id Type
/dev/sda1        2048 4196351 4194304   2G 82 Linux swap / Solaris

(3)格式化 --- mkswap

例3:格式化

[root@localhost ~]# mkswap /dev/sda1 --- 格式化
[root@localhost ~]# free -m --- 查看交换分区
              total        used        free      shared  buff/cache   available
Mem:           1806         630         756           9         419        1004
Swap:          2047           0        2047

(4)挂载分类:

<1> 临时挂载swapon 设备名

[root@localhost ~]# swapon /dev/sda1 --- 临时挂载
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1806         631         754           9         419        1003
Swap:          4095           0        4095
[root@localhost ~]# swapoff /dev/sda1 --- 去掉临时挂载

<2> 永久挂载:添加进/etc/fstab文件中

  • 分区文件挂载
  • UUID挂载
实现UUID挂载
[root@localhost ~]# blkid /dev/sda1 --- 查询UUID
/dev/sda1: UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" TYPE="swap" PARTUUID="9468c7dc-01"
[root@localhost ~]# vim /etc/fstab --- 永久挂载
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" swap        swap    defaults        0 0 --- UUID挂载
[root@localhost ~]# tail -1 /etc/fstab --- 查看
UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" swap	swap    defaults        0 0 
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1806         632         733           9         439        1001
Swap:          2047           0        2047
[root@localhost ~]# swapon -a --- 相当于激活在/etc/fstab文件中写入的,实现永久挂载
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1806         634         731           9         439         999
Swap:          4095           0        4095

2、常用命令

命令 功能
mkswap 分区设备名
将指定的分区格式化为 swap 交换文件系统
swapon 交换分区设备名 | -a
启用 ( 或激活 ) 指定的交换分区或所有交换分区
swapoff 交换分区设备名 | -a
禁用指定的交换分区或所有交换分区
swapon -s
查看交换分区的使用情况
free -m
以兆字节为单位显示物理内存、交换分区的使用情况

缺点:不论是MBR还是GPT分区,如果挂载目录的空间用尽,都无法实行动态扩展


逻辑卷

1、含义:

逻辑卷管理器是Linux系统用于对硬盘分区进行管理的一种机制,理论性较强,其创建初衷是为了解决硬盘设备在创建分区后不易修改分区大小的缺陷。

2、优点:动态管理

LVM技术是在硬盘分区和文件系统之间添加了一个逻辑层,它提供了一个抽象的卷组,可以把多块硬盘进行卷组合并

LVM的技术架构如图所示:
linux交换分区和逻辑卷_第1张图片

3、逻辑卷基本概念

物理存储介质:这里指系统的存储设备:硬盘。如:/dev/hda1、/dev/sda等等,是存储系统最低层的存储单元

linux交换分区和逻辑卷_第2张图片

(1)物理卷(PV --- Physical Volume

物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数

(2)卷组(VG --- Volumne Group

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。即卷组由物理卷组成,类似于非LVM系统中的物理硬盘,可以在卷组上创建一个或多个"LVM分区"(逻辑卷)

(3)逻辑卷(LV --- Logical Volume

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷要以属于同一个卷组,也可以属于不同的多个卷组

常用命令:

  • -n lv名称

  • -L lv大小

  • -l lv大小(例:-l 50 --- 50个PE大小,50*4M=200M)

(4)物理区域(PE --- Physical Extent

物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。默认为 4MB
查看物理区域大小:[root@localhost ~]# vgdisplay 
  --- Volume group ---
  VG Name               rhel
  System ID             
  Format                lvm2
  Metadata Areas        1
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                2
  Open LV               2
  Max PV                0
  Cur PV                1
  Act PV                1
  VG Size               <19.00 GiB
  PE Size               4.00 MiB --- 默认为4M
  Total PE              4863
  Alloc PE / Size       4863 / <19.00 GiB
  Free  PE / Size       0 / 0   
  VG UUID               xcJ9cx-zQad-lQof-RtKg-7Vf3-W74N-pgvmOh

(5)逻辑区域(LE --- Logical Extent

逻辑区域是逻辑卷中可用于分配的最小存储单元,逻辑区域的大小取决于逻辑卷所在卷组中的物理区域的大小。在同一个卷组中,LE的大小和PE是相同的,并且一一对应

(6)卷组描述区域(VGDA --- Volume Group Descriptor Area

        卷组描述区域存在于每个物理卷中,用于描述物理卷本身、物理卷所属卷组、卷组中的逻辑卷及逻辑卷中物理区域的分配等所有信息,卷组描述区域是在使用pvcreate建立物理卷时建立的。 VGDA包括以下内容: PV描述符、VG描述符、LV描述符、和一些PE描述符。
         系统启动LVM时激活VG,并将VGDA加载至内存,来识别LV的实际物理存储位置。当系统进行I/O操作时,就会根据VGDA建立的映射机制来访问实际的物理位置

4、常用LVM部署命令

命令 物理卷管理 卷组管理 逻辑卷管理
扫描 pvscan vgscan lvscan
建立 pvcreate vgcreate lvcreate
显示 pvdisplay vgdisplay lvdisplay
删除 pvremove vgremove lvremove
扩展 vgextend lvextend
缩小 vgreduce lvreduce

5、部署逻辑卷

(1)流程:PV ---> VG ---> LV

(2)案例:

<1> 正向操作:PV ---> VG ---> LV

例1:先分区 --- 三个主分区,每个分区为1G

首先删除之前创建的分区
[root@localhost ~]# vim /etc/fstab
/dev/mapper/rhel-swap   swap                    swap    defaults        0 0
UUID="52ef06ce-2a2c-4663-b3c2-40819792be21" swap        swap    defaults        0 0  --- 将此行删除
[root@localhost ~]# swapoff /dev/sda1 --- 卸除挂载
[root@localhost ~]# fdisk /dev/sda --- 进入创建分区
Command (m for help): d --- 删除之前创建的分区
Command (m for help): n --- 创建分区
Partition type
   p   primary (0 primary, 0 extended, 4 free)
   e   extended (container for logical partitions)
Select (default p): --- 默认创建主分区

Using default response p.
Partition number (1-4, default 1):
First sector (2048-20971519, default 2048):
Last sector, +sectors or +size{K,M,G,T,P} (2048-20971519, default 20971519): +1G
Command (m for help): n
Select (default p):
Using default response p.
Partition number (2-4, default 2):
Last sector, +sectors or +size{K,M,G,T,P} (2099200-20971519, default 20971519): +1G
Command (m for help): n
Select (default p):
Using default response p.
Partition number (3,4, default 3):
Last sector, +sectors or +size{K,M,G,T,P} (4196352-20971519, default 20971519): +1G
Command (m for help): p --- 打印分区信息
/dev/sda1          2048 2099199 2097152   1G 83 Linux
/dev/sda2       2099200 4196351 2097152   1G 83 Linux
/dev/sda3       4196352 6293503 2097152   1G 83 Linux

例2:修改分区类型

linux交换分区和逻辑卷_第3张图片
(更改分区类型为 --- 8e)

Command (m for help): p
/dev/sda1          2048 2099199 2097152   1G 8e Linux LVM
/dev/sda2       2099200 4196351 2097152   1G 8e Linux LVM
/dev/sda3       4196352 6293503 2097152   1G 8e Linux LVM
Command (m for help): w --- 保存退出

例3:创建PV

[root@localhost ~]# pvcreate /dev/sda{1..3} --- 创建pv(3个物理卷创建成功)
  Physical volume "/dev/sda1" successfully created.
  Physical volume "/dev/sda2" successfully created.
  Physical volume "/dev/sda3" successfully created.

查看:pvs、pvdispaly、pvscan
[root@localhost ~]# pvs
  PV             VG   Fmt  Attr PSize   PFree
  /dev/nvme0n1p2 rhel lvm2 a--  <19.00g    0
  /dev/sda1           lvm2 ---    1.00g 1.00g
  /dev/sda2           lvm2 ---    1.00g 1.00g
  /dev/sda3           lvm2 ---    1.00g 1.00g
[root@localhost ~]# pvscan
  PV /dev/nvme0n1p2   VG rhel            lvm2 [<19.00 GiB / 0    free]
  PV /dev/sda1                           lvm2 [1.00 GiB]
  PV /dev/sda2                           lvm2 [1.00 GiB]
  PV /dev/sda3                           lvm2 [1.00 GiB]
  Total: 4 [<22.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 3 [3.00 GiB]

例4:创建VG

[root@localhost ~]# vgcreate myvg1 /dev/sda1 /dev/sda2 --- 将sda1和sda2放入myvg1中
  Volume group "myvg1" successfully created

查看:vgs、vgdisplay
[root@localhost ~]# vgs --- 查看
  VG    #PV #LV #SN Attr   VSize   VFree
  myvg1   2   0   0 wz--n-   1.99g 1.99g
  rhel    1   2   0 wz--n- <19.00g    0
[root@localhost ~]# vgdisplay myvg1 --- 查看myvg1的详细信息

(如果要指定PE大小,参数为S)
[root@localhost ~]# vgcreate -s 16M myvg1 --- 将PE大小默认4M改为16M

例5:扩展VG

[root@localhost ~]# vgextend myvg1 /dev/sda3 --- 将sda3添加到myvg1中
[root@localhost ~]# vgs myvg1 --- 查看大小
  VG    #PV #LV #SN Attr   VSize  VFree
  myvg1   3   0   0 wz--n- <2.99g <2.99g

例6:创建LV

[root@localhost ~]# lvcreate -n lv1 -L 500M myvg1 --- 在myvg1中创建名字为lv1,大小为500M的lv
  Logical volume "lv1" created.

-l lv大小(例:-l 50 --- 50个PE大小,50*4M=200M)
[root@localhost ~]# lvcreate -n lv2 -l 200 myvg1 --- 创建一个800M的逻辑卷,名字为lv2
  Logical volume "lv2" created.

查看:lvs、lvdispaly
[root@localhost ~]# lvs --- 查看lv
  LV   VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  myvg1 -wi-a----- 500.00m
  lv2  myvg1 -wi-a----- 800.00m
  root rhel  -wi-ao---- <17.00g
  swap rhel  -wi-ao----   2.00g
[root@localhost ~]# lvdisplay /dev/myvg1/lv1 --- 查看lv1的详细信息

例7:格式化以及挂载

[root@localhost ~]# mkfs.xfs -f /dev/myvg1/lv1 --- 格式化
[root@localhost ~]# blkid /dev/myvg1/lv1 --- 查看UUID
/dev/myvg1/lv1: UUID="24dcd389-74bb-49b9-b958-4542db0049a6" TYPE="xfs"
[root@localhost ~]# mkdir /data --- 创建/data文件
[root@localhost ~]# mount /dev/myvg1/lv1 /data --- 在/data目录下实现临时挂载

例8:LV扩展

[root@localhost ~]# dd if=/dev/zero of=/data/ss.rmvb bs=100M count=5 --- 模拟一个500M文件

<1> 先查看lv1所在的vg是否有剩余空间来扩展
[root@localhost ~]# lvs --- 查看lv对应的vg
  LV   VG    Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  myvg1 -wi-ao---- 500.00m --- lv1所在的vg为myvg1
[root@localhost ~]# vgs myvg1 --- 查看所在vg是否还有剩余空间
  VG    #PV #LV #SN Attr   VSize  VFree
  myvg1   3   2   0 wz--n- <2.99g <1.72g --- 剩余1.7G

1>如果剩余空间满足,直接扩展lv
2>如果剩余空间不满足,先扩展vg,在扩展lv

<2> 扩展lv
[root@localhost ~]# lvextend -L 2G /dev/myvg1/lv1 --- 将lv扩展到2G
-L 2G:代表扩展到2G
-L +200M:代表增加200M 

扩展文件系统后才可将空间添加进去
ext文件系统:[root@localhost ~]# resize2fs /dev/myvg1/lv1
xfs文件系统:[root@localhost ~]# xfs_growfs /dev/myvg1/lv1
[root@localhost ~]# xfs_growfs /dev/myvg1/lv1
meta-data=/dev/mapper/RHCE-myvg1     isize=512     agcount=4, agsize=6400 blks
         =                           sectsz=512    attr=2, projid32bit=1
         =                           crc=1         finobt=1, sparse=1, rmapbt=0
         =                           reflink=1
data     =                           bsize=4096    blocks=25600, imaxpct=25
         =                           sunit=0       swidth=0 blks
naming   =version 2                  bsize=4096    ascii-ci=0, ftype=1
log      =internal log               bsize=4096    blocks=1368, version=2
         =                           sectsz=512    sunit=0 blks, lazy-count=1
realtime =none                       extsz=4096    blocks=0, rtextents=0
data blocks changed from 128000 to 524288
[root@localhost ~]# df -h 
/dev/mapper/myvg1-lv1 2.0G  504M  1.6G  25%  /data

<2> 反向操作:LV ---> VG ---> PV

例1:卸载

[root@localhost ~]# umount /dev/myvg1/lv1 --- 取消挂载

例2:删除LV

[root@localhost ~]# lvremove /dev/myvg1/lv1 --- 删除lv1
Do you really want to remove active logical volume myvg1/lv1? [y/n]: y
  Logical volume "lv1" successfully removed
[root@localhost ~]# lvremove /dev/myvg1/lv2 --- 删除lv2
Do you really want to remove active logical volume myvg1/lv2? [y/n]: y
  Logical volume "lv2" successfully removed

例3:删除VG

[root@localhost ~]# vgremove myvg1 --- vgremove -- 移除
  Volume group "myvg1" successfully removed

例4:删除PV

[root@localhost ~]# pvremove /dev/sda{1..3}
  Labels on physical volume "/dev/sda1" successfully wiped.
  Labels on physical volume "/dev/sda2" successfully wiped.
  Labels on physical volume "/dev/sda3" successfully wiped.

例5:删除分区

[root@localhost ~]# fdisk /dev/sda
Command (m for help): d --- 删除,默认从后往前删除
Partition 3 has been deleted.

Command (m for help): d
Partition 2 has been deleted.

Command (m for help): d
Partition 1 has been deleted.
Command (m for help): w
[root@localhost ~]# lsblk --- 查看分区信息
NAME          MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda             8:0    0   10G  0 disk
sr0            11:0    1  6.6G  0 rom

你可能感兴趣的:(linux基础操作,linux,运维,服务器,系统安全,centos)