磁盘和储存管理 逻辑卷

目录

分区方式

识别SSD和机械硬盘类型

备份MBR的分区表,并破坏后恢复

增加新硬盘,让内核发现

 管理分区

创建分区不同步的境况

parted 命令

删除分区

分区(fdisk)用法    gdisk 也一样

fdisk   /dev/sdb(进如操作页面)    gdisk 也一样(风险大自动转换为gpt)

文件系统类型 

创建文件系统

CentOS 7,8 同步分区表:  partprob

文件系统检测和修复

事故挂在3

增加内存   斯奥破文件

逻辑卷

缩减逻辑卷   

 创建快照


分区方式

MBR:Master Boot Record,1982年,使用32位表示扇区数,分区不超过2T
划分分区的单位:
CentOS 5 之前按整柱面划分
CentOS 6 版本后可以按Sector划分       MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)
MBR分区:主和扩展分区对应的1--4,/dev/sda3,逻辑分区从5开始,/dev/sda5 就是在4下的扩展分区   sda5的 start开始位置在 sda4里面的\

GPT:GUID(Globals Unique Identifiers) partition table 支持128个分区,使用64位,支持8Z(512Byte/block )64Z ( 4096Byte/block)
使用128位UUID(Universally Unique Identifier) 表示磁盘和分区 GPT分区表自动备份在头和尾两份,并有CRC校验UEFI (Unified Extensible Firmware Interface 统一可扩展固件接口)硬件支持GPT,使得操作系统可以启动

设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:char,存取单位“字符”,键盘 

命令mknod,可以生成块设备文件或者字符设备文件,格式为:

mknod -m 0660 /dev/loop2 b 7 2
  • 表示创建loop设备,-m设置设备文件的权限,根据major.h文件的定义,loop设备的主设备号是7,此设备号自定义为2。

lsblk           列出块设备  fdisk -l

  1. fdisk 管理MBR分区    dos 就是MBR
  2. gdisk 管理GPT分区
识别SSD和机械硬盘类型
#1表示机械,0表示SSD
[root@centos8 ~]#lsblk -d -o name,rota
NAME ROTA
sda 1
sr0 1
nvme0n1 0
nvme0n2 0

 parted 高级分区操作,可以是交互或非交互方式

备份MBR的分区表,并破坏后恢复

备份字节

dd if=/dev/sda of=/data/dpt.img bs=1 count=64 skip=446         
    名字     备份文件名     字节         64位           跳过源的前446字节

查看

hexdump -C /data/dpt.img     查看备份字节比对

hexdump -C -n 512 /dev/sda  
scp /data/dpt.img 10.0.0.105:       转移备份字节,方便破坏

破坏字节

dd if=/dev/zero      of=dev/sda         bs=1     count=64       seek=446               名字               备份名               字节              64位               跳过目标的446

hexdump -C -n 512 /dev/sda   查看都是0

#无法启动
[root@centos8 ~]#reboot

重启按esc,进入CD光盘模式      Troubleshoot ing   救援模式Rescue a CentOS system   

添加IP号 ping一下  把之前穿的文件拉过来

恢复MBR分区表
#dd if=dpt.img of=/dev/sda bs=1 seek=446
#reboot

增加新硬盘,让内核发现

[root@CentOS tsetdir]# echo '- - -' > /sys/class/scsi_host/host
host0/ host1/ host2/ 

echo '- - -' > /sys/class/scsi_host/host2|0|1/scan 零或者1,2

[root@CentOS tsetdir]#cat /proc/partitions 
major minor  #blocks  name

   8        0   20971520 sda
   8        1     204800 sda1
   8        2   16570368 sda2
   8        3    2097152 sda3
   8        4          1 sda4
   8        5    2096128 sda5
  11        0    1048575 sr0

 mkpart (创建分区)primary(翻译:主)

root@rocky86-1 ~]# parted /dev/sdb print  查看是否分区
[root@rocky86-1 ~]# parted /dev/sdb mklabel msdos    将其分区为mbr

[root@rocky86-1 ~]# parted /dev/sdb mkpart primary 301 500    分区多少
[root@rocky86-1 ~]# parted /dev/sdb print     查看分区
[root@rocky86-1 ~]# parted /dev/sdb rm 1        删除分区后面跟位数

 管理分区

  • fdisk 管理MBR分区   这两个都是可以互相管的,属于主业副业, fdisk centos8之前不建议管理GPT分区
  • gdisk 管理GPT分区   
  • parted 高级分区操作,两个都可以管      可以是交互或非交互方式

创建分区不同步的境况

适用于加分区

  • [root@CentOS ~]#partprobe   执行回车就行    centos6不行,别的都可以  特殊
  • [root@CentOS ~]#partx -a  /dev/sda

删除分区

  • partx -d  --nr 6-8 /dev/sda
  • fdisk  -l   /dev/sdb (可以产看分区)      

parted 命令

注意:parted的操作都是实时生效的,小心使用

parted /dev/sdb mklabel gpt|msdos

[root@CentOS ~]#hexdump -C -n 512 /dev/sdb 
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200
[root@CentOS ~]#parted /dev/sdb mklabel msdos
信息: You may need to update /etc/fstab.

[root@CentOS ~]#hexdump -C -n 512 /dev/sdb                              
00000000  fa b8 00 10 8e d0 bc 00  b0 b8 00 00 8e d8 8e c0  |................|
00000010  fb be 00 7c bf 00 06 b9  00 02 f3 a4 ea 21 06 00  |...|.........!..|
00000020  00 be be 07 38 04 75 0b  83 c6 10 81 fe fe 07 75  |....8.u........u|
00000030  f3 eb 16 b4 02 b0 01 bb  00 7c b2 80 8a 74 01 8b  |.........|...t..|
00000040  4c 02 cd 13 ea 00 7c 00  00 eb fe 00 00 00 00 00  |L.....|.........|
00000050  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  85 ae 00 00 00 00 00 00  |................|
000001c0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
[root@CentOS ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: msdos
Disk Flags: 

Number  Start  End  Size  Type  File system  标志

 修改不可逆   创建

[root@CentOS ~]#parted /dev/sdb mklabel gpt
警告: The existing disk label on /dev/sdb will be destroyed and all data on this disk will
be lost. Do you want to continue?
是/Yes/否/No? y                                                           
信息: You may need to update /etc/fstab.

[root@CentOS ~]#parted /dev/sdb print                               
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  标志

 创建分区

[root@CentOS ~]#parted /dev/sdb mkpart primary 1 200
信息: You may need to update /etc/fstab.

[root@CentOS ~]#parted /dev/sdb print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name     标志
 1      1049kB  200MB  199MB               primary

删除分区

[root@CentOS ~]#parted /dev/sdb print       查看                        
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start  End  Size  File system  Name  标志

[root@CentOS ~]# hexdump -C -n 512 /dev/sdb
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001c0  02 00 ee fe ff ff 01 00  00 00 ff ff 7f 02 00 00  |................|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
[root@CentOS ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=64 seek=446   删除内容  最后 55 aa 是分区类型

记录了64+0 的读入
记录了64+0 的写出
64字节(64 B)已复制,0.00108384 秒,59.0 kB/秒
[root@CentOS ~]# hexdump -C -n 512 /dev/sdb
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200
[root@CentOS ~]#dd if=/dev/zero of=/dev/sdb bs=1 count=2 seek=510  删除类型
记录了2+0 的读入
记录了2+0 的写出
2字节(2 B)已复制,0.000585178 秒,3.4 kB/秒
[root@CentOS ~]#parted /dev/sdb print    查看
错误: /dev/sdb: unrecognised disk label
Model: VMware, VMware Virtual S (scsi)                                    
Disk /dev/sdb: 21.5GB
Sector size (logical/physical): 512B/512B
Partition Table: unknown
Disk Flags: 
[root@CentOS ~]# hexdump -C -n 512 /dev/sdb
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
00000200

分区(fdisk)用法    gdisk 也一样

fdisk   /dev/sdb(进如操作页面)    gdisk 也一样(风险大自动转换为gpt)

p 分区列表
t 更改分区类型
n 创建新分区
d 删除分区
v 校验分区
u 转换单位
w 保存并退出
q 不保存并退出

 创建分区

用 fdisk 对这块硬盘分区(当硬盘小于等于2T时,用fdisk,大于2T时,用parted)

fdisk /dev/sdb

按 m 显示菜单(menu):

选择 n (add a new partition,创建新分区)

 

 我们是第一次建立,没有主分区,所以选择p建立主分区

接下来会让你选择分区号,因为主分区只有4个分区,我们选择默认1

后面是开始扇区和结束扇区,开始扇区默认即可,结束扇区输入+分区大小

此时第一个分区已经建立,但还是在内存中并没有写到硬盘sdb中,所以直接输入w

 [root@rocky86-1 ~]#  cat /proc/partitions     查看内核是否已经识别新的分区

文件系统类型 

  • ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使用巨型文件 (16TB)、最大1EB的文件系统,以及速度的提升
  • xfs:SGI,支持最大8EB的文件系统

创建文件系统

[root@CentOS ~]# lsblk -f   查看文件 是否有裸设备 有需要创建文件系统
NAME   FSTYPE  LABEL           UUID                                 MOUNTPOINT
sda                                                                 
├─sda1 ext4                    e999e075-b6d4-49f7-9c3f-dcbba6300e7d /boot
├─sda2 ext4                    b9764f6e-e5c2-4484-98e0-6defc3a2cf4d /
├─sda3 ext4                    4fa07166-83a2-48b4-8ae3-447dde1e47d6 /home
├─sda4                                                              
└─sda5 swap                    44a5c850-024f-4dd5-8aa7-90418b23318e [SWAP]

[root@rocky86-1 ~]# mkfs.ext4 /dev/sdb1   创建文件系统    如果里面不干净可以加个 -f 强行创建


[root@rocky86-1 ~]# blkid /dev/sdb1           产看是否创建成功

/dev/sdb1: UUID="0825e3d1-fe45-4533-88b0-b9cb37c04688" BLOCK_SIZE="1024" TYPE="ext4" PARTLABEL="Linux filesystem" PARTUUID="5adf7514-7288-4d46-a9e5-ba065cd11461"                     BLOCK_SIZE="  块字节 最少一块

[root@CentOS ~]#du -s /data/   查看你多少k 以k为单位    有低保再笑也是独占4K 
136700    /data/
 

mkfs.ext4 -d 1K   指定低保多少

CentOS 7,8 同步分区表:  partprob

CentOS6 通知内核重新读取硬盘分区表
新增分区用

partx -a /dev/DEVICE
kpartx -a /dev/DEVICE -f: force
#示例:
[root@centos6 ~]#partx -a /dev/sda

 删除分区用

partx -d --nr M-N /dev/DEVICE
#示例:
[root@centos6 ~]#partx -d --nr 6-8 /dev/sda
echo -e 'n\np\n\n\n+2G\nw\n' | fdisk /dev/sdc

 #增加了6,7分区

[root@centos6 ~]#fdisk /dev/sda
Command (m for help): w
The partition table has been altered!
Calling ioctl() to re-read partition table.

[root@rocky86-1 ~]# tune2fs -l /dev/sdb1    查看文件的相关属性

文件系统检测和修复

文件系统夹故障常发生于死机或者非正常关机之后,挂载为文件系统标记为“no clean”
注意:一定不要在挂载状态下执行下面命令修复
fsck: File System Check
注意:FS_TYPE 一定要与分区上已经文件类型相同 

fsck.FS_TYPE
fsck -t FS_TYPE

mkfs.ext4    -b   1024     xxx          (可以指定块大小)
常用选项:
范例:修改破坏的ext文件系统

-a 自动修复
-r 交互式修复错误

e2fsck:ext系列文件专用的检测修复工具

-y 自动回答为yes
-f 强制修复
-p 自动进行安全的修复文件系统问

xfs_repair:xfs文件系统专用检测修复工具

-f 修复文件,而设备
-n 只检查
-d 允许修复只读的挂载设备,在单用户下修复 / 时使用,然后立即reboot

 实例  他只能修复文件系统的元数据而已,就是超级块,数据破坏了也没招,修复后能不能找回全看运气

[root@CentOS ~]#df
文件系统          1K-块    已用    可用 已用% 挂载点
devtmpfs         920912       0  920912    0% /dev
tmpfs            931496       0  931496    0% /dev/shm
tmpfs            931496    9784  921712    2% /run
tmpfs            931496       0  931496    0% /sys/fs/cgroup
/dev/sda2      16179068 8783288 6550880   58% /
/dev/sda3       1998672    6568 1870864    1% /home
/dev/sda1        194235  190139       0  100% /boot
tmpfs            186300       0  186300    0% /run/user/0
[root@CentOS ~]#dd if=/dev/zero of=/dev/sda3 bs=1M count=1  破坏
记录了1+0 的读入
记录了1+0 的写出
1048576字节(1.0 MB)已复制,0.00240131 秒,437 MB/秒

[root@CentOS ~]#ls /home    什么都没有
[root@CentOS ~]#cd /home/
[root@CentOS home]#ls
[root@CentOS home]#cd

修复
[root@CentOS ~]#umount /home 
[root@CentOS ~]#df
文件系统          1K-块    已用    可用 已用% 挂载点
devtmpfs         920912       0  920912    0% /dev
tmpfs            931496       0  931496    0% /dev/shm
tmpfs            931496    9784  921712    2% /run
tmpfs            931496       0  931496    0% /sys/fs/cgroup
/dev/sda2      16179068 8783288 6550880   58% /
/dev/sda1        194235  190139       0  100% /boot
tmpfs            186300       0  186300    0% /run/user/0
[root@CentOS ~]#e2fsck /dev/sda
sda   sda1  sda2  sda3  sda4  sda5
  
[root@CentOS ~]#e2fsck /dev/sda3     直接-y 就可以不用一次次了
e2fsck 1.42.9 (28-Dec-2013)
ext2fs_open2: Bad magic number in super-block
e2fsck: 超级块无效, trying backup blocks...
超级块没有needs_recovery标志,但是日志中没有数据。
Recovery flag not set in backup 超级块, so running 日志 anyway.
/dev/sda3: 正在修复日志
Resize inode not valid.  重建<y>? 是


[root@CentOS ~]#tune2fs -l /dev/sda3 
tune2fs 1.42.9 (28-Dec-2013)
Filesystem volume name:   <none>
Last mounted on:          <not available>
Filesystem UUID:          4fa07166-83a2-48b4-8ae3-447dde1e47d6
Filesystem magic number:  0xEF53
Filesystem revision #:    1 (dynamic)
Filesystem features:      has_journal ext_attr resize_inode dir_index filetype extent 64bit flex_bg sparse_super large_file huge_file uninit_bg dir_nlink extra_isize
Filesystem flags:         signed_directory_hash 
Default mount options:    user_xattr acl
Filesystem state:         clean
Errors behavior:          Continue
Filesystem OS type:       Linux
Inode count:              131072
Block count:              524288
Reserved block count:     26214
Free blocks:              498026
Free inodes:              130998
First block:              0
Block size:               4096
Fragment size:            4096
Group descriptor size:    64
Reserved GDT blocks:      255
Blocks per group:         32768
Fragments per group:      32768
Inodes per group:         8192
Inode blocks per group:   512
Flex block group size:    16
Filesystem created:       Thu May 25 11:14:58 2023
Last mount time:          n/a
Last write time:          Mon Oct 16 10:18:03 2023
Mount count:              0
Maximum mount count:      -1
Last checked:             Mon Oct 16 10:18:03 2023
Check interval:           0 (<none>)
Lifetime writes:          66 MB
Reserved blocks uid:      0 (user root)
Reserved blocks gid:      0 (group root)
First inode:              11
Inode size:	          256
Required extra isize:     28
Desired extra isize:      28
Journal inode:            8
Default directory hash:   half_md4
Directory Hash Seed:      413c5bd6-69a3-434e-af56-11fc177c1ac5
Journal backup:           inode blocks

[root@CentOS ~]#mount /dev/sda
sda   sda1  sda2  sda3  sda4  sda5  
[root@CentOS ~]#mount /dev/sda3 /home/
[root@CentOS ~]#df
文件系统          1K-块    已用    可用 已用% 挂载点
devtmpfs         920912       0  920912    0% /dev
tmpfs            931496       0  931496    0% /dev/shm
tmpfs            931496    9784  921712    2% /run
tmpfs            931496       0  931496    0% /sys/fs/cgroup
/dev/sda2      16179068 8783288 6550880   58% /
/dev/sda1        194235  190139       0  100% /boot
tmpfs            186300       0  186300    0% /run/user/0
/dev/sda3       1998672    6568 1870864    1% /home

事故挂在3

[root@rocky86-1 ~]# blkid (查看uid)

[root@rocky86-1 ~]#  mount /dev/sdc1 /mnt  (文件挂在)临时挂在

挂在可以叠加,但是只显示最先的,文件可以同时挂在多个地方    挂在用UUID也可以建议用uid

如果有人正在使用的话没法取消挂在

[root@rocky86-1 ~]# umount /mnt    (取消挂载)  

du   /SS/SS(可以查看文件夹大小)   -s (可以查看文件夹总大小)

df     (查看文件系统大小包括元数据)只能查看处于关在状态下的文件系统大小

[root@rocky86-1 ~]# fuser -v  data/mysql/    可以查看谁在访问挂载

[root@rocky86-1 ~]# ps aux    可以查看进程

[root@rocky86-1 ~]# fuser -km  /xxx/xxx    (把谁提出终端)

 vim /etc/fstab  永久挂在       mount -a   重新加载

如果uid写错可能影响机器起不来,可以在页面注释掉错的,再起来

swap 分区    当内存不足时,可以用硬盘来模拟内存

none 禁用这行 就可以不用硬盘来做模拟内存   

 需要先进入 vim /etc/fstab   需要注销掉none这行 重启后才能生效,或者进入swapoff  /dev/dm-1就禁用了了                            在swapon  -s 里面提取的/dev/dm-1  (partition)

加内存   斯奥破文件

[root@rocky86-1 ~]# blkid   查看设配
[root@rocky86-1 ~]# fdisk /dev/sdc 首先进入到设置页面,创建分区,更改分区类型为Linux swap  然后w保存退出         blkid 查看uid是否更改分区成功,然后复制uid到

[root@rocky86-1 ~]# vim /etc/fstab 下除了uid不同 其余的都和none一样

[root@rocky86-1 ~]# swapon -s  查看是否加载成功    swapon -a 重新加载一下
 

 创建文件系统   以文件的格式来增加内存

[root@rocky86-1 ~]# dd if=/dev//zero of=/swapfile bs=1M count=1024  创建文件

[root@rocky86-1 ~]# mkswap  /swapfile     创建文件系统
[root@rocky86-1 ~]# chmod  600 /swapfile        修改权限

[root@rocky86-1 ~]# vim /etc/fstab   进入加上  、swapfile   复制上面none的权限

[root@rocky86-1 ~]# swapon -a    重新加载权限
[root@rocky86-1 ~]# swapon -s    显示分区
 

逻辑卷

相关工具来自于 lvm2 包

yum -y install lvm2

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

        物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘;它是LVM的基本存储逻辑块,但和基本的物理分区相比,逻辑卷包含LVM相关的管理参数。

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

        它可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

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

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

物理区域--PE(Physical Extent):
        物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小可根据实际情况在建立物理卷时指定。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致。

1增加硬盘 2加载硬盘3给硬盘分区8e

硬盘分区8e

[root@CentOS home]#echo '- - -' > /sys/class/scsi_host/host2/scan 
[root@CentOS home]#echo '- - -' > /sys/class/scsi_host/host1/scan 
[root@CentOS home]#echo '- - -' > /sys/class/scsi_host/host0/scan 

[root@CentOS home]#lsblk 
NAME   MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda      8:0    0   20G  0 disk 
├─sda1   8:1    0  200M  0 part /boot
├─sda2   8:2    0 15.8G  0 part /
├─sda3   8:3    0    2G  0 part /home
├─sda4   8:4    0  512B  0 part 
└─sda5   8:5    0    2G  0 part [SWAP]
sdb      8:16   0   20G  0 disk 
sdc      8:32   0   20G  0 disk 
sr0     11:0    1  4.4G  0 rom  


[root@CentOS home]# fdisk /dev/sdc 

(输入 m 获取帮助):p

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0

   设备 Boot      Start         End      Blocks   Id  System

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):
起始 扇区 (2048-41943039,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-41943039,默认为 41943039):+500M
分区 1 已设置为 Linux 类型,大小设为 500 MiB

命令(输入 m 获取帮助):p

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     1026047      512000   83  Linux

命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L

 0  空              24  NEC DOS         81  Minix / 旧 Linu bf  Solaris        
 1  FAT12           27  隐藏的 NTFS Win 82  Linux 交换 / So c1  DRDOS/sec (FAT-
 2  XENIX root      39  Plan 9          83  Linux           c4  DRDOS/sec (FAT-
 3  XENIX usr       3c  PartitionMagic  84  OS/2 隐藏的 C:  c6  DRDOS/sec (FAT-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     1026047      512000   8e  Linux LVM

命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
  
[root@CentOS home]#hexdump -C /dev/sdc -n 512    8e
00000000  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001b0  00 00 00 00 00 00 00 00  e0 ea 64 d9 00 00 00 20  |..........d.... |
000001c0  21 00 8e dd 1e 3f 00 08  00 00 00 a0 0f 00 00 00  |!....?..........|
000001d0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 00 00  |................|
*
000001f0  00 00 00 00 00 00 00 00  00 00 00 00 00 00 55 aa  |..............U.|
00000200

[root@rocky86-1 ~]# pvs    查看物理卷   什么没有就什么不显示

[root@CentOS home]#pvs
  PV         VG Fmt  Attr PSize   PFree  
  /dev/sdb      lvm2 ---   20.00g  20.00g
  /dev/sdc1     lvm2 ---  500.00m 500.00m

[root@rocky86-1 ~]# pvdislay   详细查看物理卷
[root@rocky86-1 ~]# pvcreate  /dev/sd{d1,e}    创建物理卷

root@CentOS home]#pvcreate /dev/sdb /dev/sdc1
  Device /devsdc1 not found.
WARNING: dos signature detected on /dev/sdb at offset 510. Wipe it? [y/n]: y
  Wiping dos signature on /dev/sdb.
  Physical volume "/dev/sdb" successfully created.

[root@rocky86-1 ~]#  vgcreate -s 16M testvg0 /dev/sdd1   /dev/sde   

vgcreate创建卷组、    -s 指定PE将来空间以及容量扩容的最小单位 默认4M

[root@CentOS home]#vgcreate vg_mysql /dev/sdb /dev/sdc1
  Volume group "vg_mysql" successfully created
[root@CentOS home]#vgs
  VG       #PV #LV #SN Attr   VSize  VFree 
  vg_mysql   2   0   0 wz--n- 20.48g 20.48g

[root@rocky86-1 ~]# vgdisplay       查看卷组 详细

lvcreate -L 6G  -n lv-mysql testvg0     

 lvcreate创建逻辑卷分区   -L6(指定大小)    -n(起名)    逻辑卷名

[root@CentOS home]# lvcreate -n lv_data -L 600M vg_mysql 
  Logical volume "lv_data" created.
[root@CentOS home]#ll /dev/vg_mysql/lv_data 
lrwxrwxrwx 1 root root 7 10月 16 11:40 /dev/vg_mysql/lv_data -> ../dm-0    都是链接,

[root@rocky86-1 ~]# mkfs.ext4 /dev/testvg0/lv-mysql    (创建文件系统)

mkfs.ext4(格式化成ext4)   

[root@rocky86-1 ~]# blkid (查看uid)

[root@CentOS home]#mkfs.ext4 /dev/vg_mysql/lv_data 
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
38400 inodes, 153600 blocks
7680 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=157286400
5 block groups
32768 blocks per group, 32768 fragments per group
7680 inodes per group
Superblock backups stored on blocks: 
	32768, 98304

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成

[root@CentOS home]#blkid 
/dev/sda1: UUID="e999e075-b6d4-49f7-9c3f-dcbba6300e7d" TYPE="ext4" 
/dev/sda2: UUID="b9764f6e-e5c2-4484-98e0-6defc3a2cf4d" TYPE="ext4" 
/dev/sda3: UUID="4fa07166-83a2-48b4-8ae3-447dde1e47d6" TYPE="ext4" 
/dev/sda5: UUID="44a5c850-024f-4dd5-8aa7-90418b23318e" TYPE="swap" 
/dev/sr0: UUID="2022-07-26-15-09-17-00" LABEL="CentOS 7 x86_64" TYPE="iso9660" PTTYPE="dos" 
/dev/sdb: UUID="yTRZv1-sUkf-a6Io-c2Rl-SZfT-y2Ev-6CJdd6" TYPE="LVM2_member" 
/dev/sdc1: UUID="C9JIhH-3SmQ-1sn3-1BO7-40da-LBe2-ap09vz" TYPE="LVM2_member" 
/dev/mapper/vg_mysql-lv_data: UUID="978eb73e-f83a-415d-a856-3a05dad46cc0" TYPE="ext4" 

[root@rocky86-1 ~]# vim /etc/fstab    (写入永久) mount -a    加载       

[root@CentOS home]#mkdir /mysql/data -p
[root@CentOS home]#vim /etc/fstab 

UUID="978eb73e-f83a-415d-a856-3a05dad46cc0" /mysql/data           ext4    defaults        0 0
mount -a    加载 

[root@CentOS home]#df
文件系统                        1K-块    已用    可用 已用% 挂载点
devtmpfs                       920912       0  920912    0% /dev
tmpfs                          931496       0  931496    0% /dev/shm
tmpfs                          931496    9780  921716    2% /run
tmpfs                          931496       0  931496    0% /sys/fs/cgroup
/dev/sda2                    16179068 8792620 6541548   58% /
/dev/sda1                      194235  190139       0  100% /boot
tmpfs                          186300       0  186300    0% /run/user/0
/dev/sda3                     1998672    6568 1870864    1% /home
/dev/mapper/vg_mysql-lv_data   588352     912  544432    1% /mysql/data

[root@rocky86-1 ~]# lvextend  -l +100%free /dev/testvg0/lv-mysql(扩展逻辑卷就是有空间了)

#针对ext
resize2fs /dev/VG_NAME/LV_NAME
#针对xfs
xfs_growfs 挂载点

[root@rocky86-1 ~]# resize2fs /dev/testvg0/lv-mysql

[root@CentOS home]#vgdisplay    扩展之前
  --- Volume group ---
  VG Name               vg_mysql
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  2
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.48 GiB
  PE Size               4.00 MiB
  Total PE              5243
  Alloc PE / Size       150 / 600.00 MiB
  Free  PE / Size       5093 / 19.89 GiB       #剩余空间
  VG UUID               I87xUD-Je5e-vore-kmzt-WgQQ-3vdY-eQLLk8

[root@CentOS home]#lvextend -l +100%free /dev/mapper/vg_mysql-lv_data   扩展全部
  Size of logical volume vg_mysql/lv_data changed from 600.00 MiB (150 extents) to 20.48 GiB (5243 extents).
  Logical volume vg_mysql/lv_data successfully resized.
[root@CentOS home]#df -h
文件系统                      容量  已用  可用 已用% 挂载点
devtmpfs                      900M     0  900M    0% /dev
tmpfs                         910M     0  910M    0% /dev/shm
tmpfs                         910M  9.6M  901M    2% /run
tmpfs                         910M     0  910M    0% /sys/fs/cgroup
/dev/sda2                      16G  8.4G  6.3G   58% /
/dev/sda1                     190M  186M     0  100% /boot
tmpfs                         182M     0  182M    0% /run/user/0
/dev/sda3                     2.0G  6.5M  1.8G    1% /home
/dev/mapper/vg_mysql-lv_data  575M  912K  532M    1% /mysql/data    内存没有变化 需要同步
[root@CentOS home]#vgdisplay 
  --- Volume group ---
  VG Name               vg_mysql
  System ID             
  Format                lvm2
  Metadata Areas        2
  Metadata Sequence No  3
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                1
  Open LV               1
  Max PV                0
  Cur PV                2
  Act PV                2
  VG Size               20.48 GiB
  PE Size               4.00 MiB
  Total PE              5243
  Alloc PE / Size       5243 / 20.48 GiB
  Free  PE / Size       0 / 0        已经清空
  VG UUID               I87xUD-Je5e-vore-kmzt-WgQQ-3vdY-eQLLk8

[root@CentOS home]# resize2fs /dev/vg_mysql/lv_data    exit4 同步命令
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg_mysql/lv_data is mounted on /mysql/data; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 3
The filesystem on /dev/vg_mysql/lv_data is now 5368832 blocks long.

[root@CentOS home]#df -h
文件系统                      容量  已用  可用 已用% 挂载点
devtmpfs                      900M     0  900M    0% /dev
tmpfs                         910M     0  910M    0% /dev/shm
tmpfs                         910M  9.6M  901M    2% /run
tmpfs                         910M     0  910M    0% /sys/fs/cgroup
/dev/sda2                      16G  8.4G  6.3G   58% /
/dev/sda1                     190M  186M     0  100% /boot
tmpfs                         182M     0  182M    0% /run/user/0
/dev/sda3                     2.0G  6.5M  1.8G    1% /home
/dev/mapper/vg_mysql-lv_data   21G  3.2M   20G    1% /mysql/data

(扩展文件系统  有空间了给文件系统)不同的文件系统用不同命令 xfs_growfs

lvextend -r -l +100%free /dev/testvg0/lv-mysql  # 多个 r 扩展文件空间又扩展文件系统

Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”

命令(输入 m 获取帮助):p

磁盘 /dev/sdc:21.5 GB, 21474836480 字节,41943040 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd964eae0

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdc1            2048     1026047      512000   8e  Linux LVM
/dev/sdc2         1026048    41943039    20458496   8e  Linux LVM
[root@CentOS home]#partx -a /dev/sdc   新加不同步,
partx: /dev/sdc: error adding partition 1
[root@CentOS home]#lsblk              查看
NAME                 MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                    8:0    0   20G  0 disk 
├─sda1                 8:1    0  200M  0 part /boot
├─sda2                 8:2    0 15.8G  0 part /
├─sda3                 8:3    0    2G  0 part /home
├─sda4                 8:4    0  512B  0 part 
└─sda5                 8:5    0    2G  0 part [SWAP]
sdb                    8:16   0   20G  0 disk 
└─vg_mysql-lv_data   253:0    0 20.5G  0 lvm  /mysql/data
sdc                    8:32   0   20G  0 disk 
├─sdc1                 8:33   0  500M  0 part 
│ └─vg_mysql-lv_data 253:0    0 20.5G  0 lvm  /mysql/data
└─sdc2                 8:34   0 19.5G  0 part 
sr0                   11:0    1  4.4G  0 rom  
[root@CentOS home]#pvcreate /dev/sdc2      #创建物理卷
  Physical volume "/dev/sdc2" successfully created.
[root@CentOS home]#pvs                      查看
  PV         VG       Fmt  Attr PSize   PFree 
  /dev/sdb   vg_mysql lvm2 a--  <20.00g     0 
  /dev/sdc1  vg_mysql lvm2 a--  496.00m     0 
  /dev/sdc2           lvm2 ---   19.51g 19.51g
[root@CentOS home]#vgextend vg_mysql /dev/sdc2   添加到逻辑卷
  Volume group "vg_mysql" successfully extended
[root@CentOS home]#pvs
  PV         VG       Fmt  Attr PSize   PFree  
  /dev/sdb   vg_mysql lvm2 a--  <20.00g      0 
  /dev/sdc1  vg_mysql lvm2 a--  496.00m      0 
  /dev/sdc2  vg_mysql lvm2 a--  <19.51g <19.51g
[root@CentOS home]#lvextend -r -L +1G /dev/vg_mysql/lv_data    扩展分区
  Size of logical volume vg_mysql/lv_data changed from 20.48 GiB (5243 extents) to 21.48 GiB (5499 extents).
  Logical volume vg_mysql/lv_data successfully resized.
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/mapper/vg_mysql-lv_data is mounted on /mysql/data; on-line resizing required
old_desc_blocks = 3, new_desc_blocks = 3
The filesystem on /dev/mapper/vg_mysql-lv_data is now 5630976 blocks long.

[root@CentOS home]#lvdisplay     查看
  --- Logical volume ---
  LV Path                /dev/vg_mysql/lv_data
  LV Name                lv_data
  VG Name                vg_mysql
  LV UUID                QvQPc3-MQeK-zUOB-XReI-IrbQ-DOGr-IUea1j
  LV Write Access        read/write
  LV Creation host, time CentOS, 2023-10-16 11:40:54 +0800
  LV Status              available
  # open                 1
  LV Size                21.48 GiB
  Current LE             5499
  Segments               3
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:0
   

缩减逻辑卷   

缩减逻辑卷    (缩减前建议备份)缩减很容易文件丢失      xfs(不支持缩减)

 [root@rocky86-1 ~]# umount data/mysql     (取消挂载)

e2fsck  data/mysql  #检查

[root@rocky86-1 ~]# lvreduce -L 8G -r  /dev/testvg0/lv-mysql     (缩减8G)仅支持ext 

[root@rocky86-1 ~]# mount  /dev/testvg0/lv-mysql    data/mysql/   (重新挂在)

增加逻辑卷 

1分区fdisk /dev/sdd    t(更改分区类型8e)

2变成物理卷   pvcreate /dev/sdd

3家卷组      vgextend  rl    /dev/sdd

4连扩容在扩展文件系统  lvestend -r -L +10G /dev/mapper/rl-root

拆除硬盘

1添加硬盘[root@rocky86-1 ~]# pvcreate  /dev/sdf

2加入到同一个卷组里[root@rocky86-1 ~]# vgextend testvg0 /dev/sdf

3把不要的一硬盘挪移到别的空间里[root@rocky86-1 ~]#  pvmove  /dev/sde 

4把他从卷组中移走[root@rocky86-1 ~]#  vgreduce  testvg0  /dev/sde

5把硬盘从物理卷删掉[root@rocky86-1 ~]# pvremove /dev/sde

 创建快照

  • 快照特点:
  • 备份速度快,瞬间完
  • 应用场景是测试环境,不能完成代替备份
  • 快照后,逻辑卷的修改速度会一定有影响

[root@rocky86-1 ~]# lvcreate  -n lv-mysql-snapshot -s -p r -L 1G /dev/testvg0/lv-mysql  lvcreate  创建快照(也是逻辑卷)  -n lv-mysql-snapshot    快照名     s(快照的意思)

-p r (只读防止修改) -L 1G(容量)  /dev/testvg0/lv-mysql(谁的快照)

root@rocky86-1 data]# lvdisplay(可以查看快照信息)

[root@rocky86-1 mysql]# mount /dev/testvg0/lv-mysql-snapshot /mnt  (快照绑定目录)
 

 回复快照

1先取消所有挂载 [root@rocky86-1 ~]# umount /mnt     

 [root@rocky86-1 ~]# umount /data/mysql 

2回复快照 [root@rocky86-1 mysql]#   lvconvert --merg   /dev/testvg0/lv-mysql-snapshot 

 挂载注意事项

挂载快照,xfs注意要使用-o ro实现只读,防止快照被修改
mkdir -p /mnt/snap
mount -o ro,nouuid /dev/vg0/data-snapshot /mnt/snap

为现有逻辑卷创建快照,注意ext4建议使用-p r 实现只读
lvcreate -l 64 -s -n data-snapshot /dev/vg0/data

 删除快照

1取消挂载[root@rocky86-1 mysql]# umount /data/mysql 

  查看逻辑卷[root@rocky86-1 mysql]#  lvs

2删除逻辑卷[root@rocky86-1 mysql]# lvremove /dev/testvg0/lv-mysql 

查看卷组[root@rocky86-1 mysql]# vgs

3删除卷组[root@rocky86-1 ~]# vgremove testvg0 

4删除物理卷[root@rocky86-1 ~]# pvremove /dev/sdd1  /dev/sdf            查看物理卷pvs
 

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值