zutuanxue.com-linux磁盘管理基本管理

这篇具有很好参考价值的文章主要介绍了zutuanxue.com-linux磁盘管理基本管理。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

linux磁盘管理基本管理

开课

​ 本章我们将学习到磁盘管理的相关知识,这部分知识在我们以后的工作中非常重要,它可以让我们知道如何去规划磁盘,如何去使用磁盘,如何去提高磁盘的利用率,这些都会影响服务器的性能和效率,而服务器性能和效率会影响到我们在行业中的个人价值。

知识点

  • 基本管理
    • 介绍
    • 工作原理
    • 性能指标
    • 磁盘的使用方法
    • 基本分区管理
  • GPT&LVM
    • GPT磁盘管理
    • LVM介绍&概念
    • LVM管理
    • 扩展
  • RAID
    • RAID介绍
    • 常见RAID级别
    • 软RAID
    • RAID的使用

课程目标

  • 能够知道磁盘的作用,相关概念,磁盘的性能指标
  • 能够掌握磁盘的使用方法
  • 能够管理GPT磁盘
  • 能够说出LVM的相关概念及使用
  • 能够了解如何扩容swap及LVM的额外应用
  • 能够说出raid的分类及优缺点
  • 能够熟练使用相关命令操作raid

一、磁盘介绍

磁盘:计算机中的外部存储设备,负责存储计算机数据,并且断电后也能保持数据不丢失。

分类:

按照物理结构:机械磁盘,固态磁盘

按照接口:IDE、SCSI、SATA、SAS、mSATA、M.2、NVME、PCIe

按照尺寸:

​ 机械硬盘:1.8寸 2.5寸 3.5寸

​ 固态硬盘:SATA: 2.5寸

​ M.2: 2242、2260、2280

二、熟悉磁盘的工作原理

机械磁盘的读写数据依靠电机带动盘片转动来完成数据读写的。

机械磁盘剖析图

zutuanxue.com-linux磁盘管理基本管理

为了使磁盘内部清洁,磁盘是在真空特殊环境中制作的,不能随意拆卸,拆开后基本报废了

机械磁盘工作是依靠马达带动盘片转动,通过磁头来读取磁盘上的数据。

磁盘术语

磁盘

硬盘中一般会有多个盘片组成,每个盘片包含两个面,每个盘面都对应地有一个读/写磁头。受到硬盘整体体积和生产成本的限制,盘片数量都受到限制,一般都在5片以内。盘片的编号自下向上从0开始,如最下边的盘片有0面和1面,再上一个盘片就编号为2面和3面。

磁头

负责读取盘面数据的设备

磁道

从盘片的最内侧向外有很多同心圆圈,我们称为磁道

扇区

从圆心向外画直线,可以将磁道划分为若干个弧段,称之为扇区,一个扇区通常为512B

zutuanxue.com-linux磁盘管理基本管理

磁柱

硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面。磁盘的柱面数与一个盘面上的磁道数是相等的。由于每个盘面都有自己的磁头,因此,盘面数等于总的磁头数。

zutuanxue.com-linux磁盘管理基本管理

三、磁盘的性能指标

影响磁盘性能的指标

寻道时间(seek time)【和 转速 相关】:Tseek,是指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms

旋转延迟:Trotation,是指盘片旋转将请求数据所在的扇区移动到读写磁头下方所需要的时间。旋转延迟取决于磁盘转速,通常用磁盘旋转一周所需时间的1/2表示。比如:7200rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000rpm的磁盘其平均旋转延迟为2ms。

数据传输时间:Ttransfer,是指完成传输所请求的数据所需要的时间

衡量磁盘性能的指标

IOPS:IOPS(Input/Output Per Second)即每秒的输入输出量(或读写次数),即指每秒内系统能处理的I/O请求数量。随机读写频繁的应用,如小文件存储等,关注随机读写性能,IOPS是关键衡量指标。可以推算出磁盘的IOPS = 1000ms / (Tseek + Trotation + Transfer),如果忽略数据传输时间,理论上可以计算出随机读写最大的IOPS。常见磁盘的随机读写最大IOPS为:

  • 7200rpm的磁盘 IOPS = 76 IOPS
  • 10000rpm的磁盘IOPS = 111 IOPS
  • 15000rpm的磁盘IOPS = 166 IOPS

**throughput :**吞吐量指单位时间内可以成功传输的数据数量。 单位为(m/s G/s)

zutuanxue.com-linux磁盘管理基本管理

**文件系统:**是告知操作系统使用何种方法和数据结构在存储设备或分区上读写数据的;是分区数据管家,负责如何将数据写入磁盘或者从磁盘读出

​ NTFS EXT3 EXT4 XFS ISO9660

具体有多少 man mount -t

 adfs,  affs,  autofs,  cifs,  coda,  coherent, cramfs,debugfs, devpts, efs, ext, ext2, ext3, ext4, hfs, hfsplus, hpfs,iso9660,  jfs, minix, msdos, ncpfs, nfs, nfs4, ntfs, proc, qnx4,ramfs, reiserfs, romfs, squashfs,  smbfs,  sysv,  tmpfs,  ubifs,udf,  ufs,  umsdos,  usbfs,  vfat, xenix, xfs, xiafs.

文件系统可以根据应用场景去选择使用哪一款,如果不会选择,推荐ext4或者XFS

page cache

其实就是内存上空闲的部分 用来缓存数据,比如buffer cache

作用:对IO读写做优化

测试缓存对读写的影响

[root@localhost ~]# echo 3 > /proc/sys/vm/drop_caches
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1980          95        1807           9          77        1754
Swap:          2047           0        2047
[root@localhost ~]# dd if=/dev/zero of=/tmp/big bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节(1.0 GB)已复制,10.2412 秒,102 MB/[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1980          95         779           9        1105        1698
Swap:          2047           0        2047
[root@localhost ~]# dd if=/dev/zero of=/tmp/big1 bs=1M count=1000
记录了1000+0 的读入
记录了1000+0 的写出
1048576000字节(1.0 GB)已复制,7.89978 秒,133 MB/秒

读
[root@localhost ~]# echo 3 > /proc/sys/vm/drop_caches 
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1980          95        1805           9          79        1753
Swap:          2047           0        2047
[root@localhost ~]# dd if=/tmp/big of=/dev/null 
记录了2048000+0 的读入
记录了2048000+0 的写出
1048576000字节(1.0 GB)已复制,2.23965 秒,468 MB/[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           1980          95         800           9        1084        1710
Swap:          2047           0        2047
[root@localhost ~]# dd if=/tmp/big of=/dev/null 
记录了2048000+0 的读入
记录了2048000+0 的写出
1048576000字节(1.0 GB)已复制,1.92811 秒,544 MB/

四、linux磁盘的使用方法

4.1、磁盘初始化

一块新的磁盘使用必须初始化为MBR或者GPT分区。

  • MBR <2TB fdisk 4个主分区或者3个主分区+1个扩展分区(N个逻辑分区)

MBR(Master Boot Record)的缩写,由三部分组成,即:

  1. Bootloader(主引导程序)446字节
    • 引导操作系统的主程序
  2. DPT分区表(Disk Partition Table)64字节
    • 分区表保存了硬盘的分区信息,操作系统通过读取分区表内的信息,就能够获得该硬盘的分区信息
    • 每个分区需要占用16个字节大小,保存有文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容
    • 分区表中保存的分区信息都是主分区与扩展分区的分区信息,扩展分区不能直接使用,需要在扩展分区内划分一个或多个逻辑分区后才能使用
    • 逻辑分区的分区信息保存在扩展分区内而不是保存在MBR分区表内,这样,就可以突破MBR分区表只能保存4个分区的限制
  3. 硬盘有效标志(校验位)2个字节
  • GPT >2TB gdisk(parted) 128个主分区

注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失

4.2、分区

将磁盘合理分区,能使计算机或者使用者更快的存取数据

​ MBR 主分区+扩展分区<=4

​ GPT 主分区<=128

4.3、格式化

装载文件系统(相当于库管,负责数据的写入和读出)。

​ 常见的文件系统:NTFS EXT EXT2 EXT3 EXT4 XFS vfat

4.4、挂载

linux中设备不能直接使用,需要挂载到文件夹才可以。

挂载方式:

  1. 手动挂载
  2. 开机挂载
  3. 自动挂载

五、基本分区管理

5.1、linux磁盘表示方法介绍

硬盘命名方式
OS IDE(并口) SATA(串口) SCSI
CentOS6 /dev/hda /dev/sda /dev/sda
CentOS7 /dev/sda /dev/sda /dev/sda
CentOS8 /dev/sda /dev/sda /dev/sda
磁盘设备的命名

/dev/sda2

s=硬件接口类型(sata/scsi),d=disk(硬盘),a=第1块硬盘(b,第二块),2=第几个分区
/dev/hd h=IDE硬盘 /dev/hdd3
/dev/vd v=虚拟硬盘 /dev/vdf7

HP服务器硬盘

/dev/cciss/c0d0
/dev/cciss/c0d0p1 c0第一个控制器, d0第一块磁盘, p1分区1
/dev/cciss/c0d0p2 c0第一个控制器, d0第一块磁盘, p2分区2

5.2、磁盘分区

1. 磁盘划分思路
  • 进入分区表 新建分区 fdisk
  • 更新分区表<刷新分区表>
  • 格式化分区——>文件系统
  • 挂载使用——>mount【开机自动挂载|autofs自动挂载】
2. fdisk分区
2.1 使用fdisk分区
# lsblk		查看块设备
# df -h  查看正在挂载的设备情况
# blkid  打印某个已经格式化分区的UUID
# fdisk -l		查看当前系统的所有设备分区情况
# fdisk  /dev/sdb


[root@localhost ~]# fdisk  -l /dev/sdb
硬盘容量 = 柱面数 × 盘面数(磁头数) × 扇区数 × 扇区大小(一般为512字节)
Disk /dev/sdb: 20 GiB, 21474836480 bytes, 41943040 sectors	磁盘空间统计,大小和扇区数量
几何属性:255 个磁头, 63 个扇区/磁道, 2610 个柱面
 ###此行内容只有在使用fdisk分区时,使用c命令加上与dos兼容的标记时才会出现,这里面所提到的磁头等数量与磁盘中的物理寻址和逻辑块寻址相关,而且它们都是逻辑地址,产生访问时,磁盘控制器会把这些确定的逻辑地址转换为实际的物理地址;对于我们来讲这几个数值可以帮助我们计算磁盘空间的大小以及一个磁柱的大小,比如说
 ##一个磁柱的容量=255x63x512=8225280(约8M空间)
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x178c5f83


 设备       启动    起点     末尾     扇区 		大小 Id 类型
/dev/sda1  *       2048  2099199  2097152   1G 83 Linux
/dev/sda2       2099200 41943039 39843840  19G 8e Linux LVM

命令(输入 m 获取帮助)

任务:

添加一块硬盘,需要将其分区,最终需要使用2G空间。

思路:
1. 增加一块硬盘
2. 使用fdisk命令进行分区
3. 格式化指定分区
4. 创建一个空的目录作为挂载点
5. 挂载使用

步骤:
1. 增加硬盘
增加完硬盘记得重启系统
# lsblk	查看硬盘是否添加成功
...
sdb           8:16   0   20G  0 disk 
[root@localhost ~]# fdisk -l /dev/sdb
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
2. 使用fdisk命令分区
[root@localhost ~]# fdisk /dev/sdb

欢迎使用 fdisk (util-linux 2.32.1)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。

设备不包含可识别的分区表。
创建了一个磁盘标识符为 0x0c7799c3 的新 DOS 磁盘标签。

命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0c7799c3

命令(输入 m 获取帮助):n
分区类型
   p   主分区 (0个主分区,0个扩展分区,4空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (1-4, 默认  1): 
第一个扇区 (2048-41943039, 默认 2048): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (2048-41943039, 默认 41943039): +1G

创建了一个新分区 1,类型为“Linux”,大小为 1 GiB。

命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x80e196f2

设备       启动  起点    末尾    扇区 大小 Id 类型
/dev/sdb1        2048 2099199 2097152   1G 83 Linux

命令(输入 m 获取帮助):n
分区类型
   p   主分区 (1个主分区,0个扩展分区,3空闲)
   e   扩展分区 (逻辑分区容器)
选择 (默认 p):p
分区号 (2-4, 默认  2): 2
第一个扇区 (2099200-41943039, 默认 2099200): 
上个扇区,+sectors 或 +size{K,M,G,T,P} (2099200-41943039, 默认 41943039): +1G

创建了一个新分区 2,类型为“Linux”,大小为 1 GiB。

命令(输入 m 获取帮助):p
Disk /dev/sdb:20 GiB,21474836480 字节,41943040 个扇区
单元:扇区 / 1 * 512 = 512 字节
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x80e196f2

设备       启动    起点    末尾    扇区 大小 Id 类型
/dev/sdb1          2048 2099199 2097152   1G 83 Linux
/dev/sdb2       2099200 4196351 2097152   1G 83 Linux

命令(输入 m 获取帮助):w
分区表已调整。
将调用 ioctl() 来重新读分区表。
正在同步磁盘。



3. 再次查看分区情况
# lsblk
sdb                       8:16   0   20G  0 disk 
├─sdb1                    8:17   0    1G  0 part 
└─sdb2                    8:18   0    1G  0 part 

4. 刷新分区表信息
[root@localhost ~]# partprobe /dev/sdb


5. 格式化分区
[root@localhost ~]# mkfs.xfs /dev/sdb1
[root@localhost ~]# mkfs.vfat /dev/sdb2

6. 创建新的挂载点
[root@localhost ~]# mkdir /u01
[root@localhost ~]# mkdir /u02

7. 挂载使用
[root@localhost ~]# mount /dev/sdb1 /u01
[root@localhost ~]# mount /dev/sdb2 /u02

注意

MBR分区表最多允许4个主分区,或者3个主分区+1个扩展分区

扩展分区不能直接存储数据

扩展分区的大小决定了所有逻辑分区的大小,逻辑分区的编号从5开始

删除扩展分区后下面的逻辑分区都被删除

分完区后需要手动刷新分区表,如果刷新不成功需要重启操作系统

创建分区的时候尽可能注意分区序号的连续性

2.2 挂载分区设备

手动挂载:

mount   [options]     需要挂载的设备     挂载点
特点:系统重启后需要重新挂载;手动卸载后需要手动挂载

-o:挂载选项	ro,sync,rw,remount
-t:文件系统类型
mount -t nfs=mount.nfs
mount -t cifs=mount.cifs

[root@localhost ~]# mount -o remount,ro /u02		//可以是挂载点也可以是设备
remount:重新挂载一个正在挂载的设备

# mount -o remount,ro /dev/sdb1		
# mount -o remount,ro /u01
注意:后面可以根挂载点也可以跟设备本身


挂载设备:真实设备、设备UUID,设备的卷标
/dev/sdb
/dev/sdb1
[root@localhost ~]# blkid /dev/sdb1				//查看设备的UUID和文件系统类型
/dev/sdb1: UUID="96b67b7b..." TYPE="xfs" PARTUUID="80e196f2-01"
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: UUID="6821-049E" TYPE="vfat" PARTUUID="80e196f2-02"

ext*设置&查看卷标
[root@localhost ~]# e2label /dev/sdb1 DISK1			ext*设置卷标
[root@localhost ~]# e2label /dev/sdb1						ext*查看卷标

xfs设置&查看卷标
[root@localhost ~]# xfs_admin -L DISK1 /dev/sdb1	xfs设置卷标
[root@localhost ~]# xfs_admin -l /dev/sdb1				xfs查看卷标
label = "DISK1"

vfat设置&查看卷标
[root@localhost ~]# dosfslabel /dev/sdb2 hello
[root@localhost ~]# dosfslabel /dev/sdb2

也可以使用blkid查看卷标
[root@localhost ~]# blkid /dev/sdb1
/dev/sdb1: LABEL="DISK1" UUID="96.." TYPE="xfs" PARTUUID="80..-01"
[root@localhost ~]# blkid /dev/sdb2
/dev/sdb2: LABEL="disk2" UUID="6..." TYPE="vfat" PARTUUID="8e.2-02"


卸载设备:umount
[root@localhost ~]# umount /u01
[root@localhost ~]# umount /dev/sdb2


##如果希望将本机的某个文件夹挂到另一个文件夹
 mount -o bind /etc /opt/data3

开机自动挂载:

/etc/fstab        //开机自动挂载
特点:系统开机或重启会自动挂载;手动卸载后,使用mount -a自动挂载
格式:
要挂载的资源路径	挂载点	文件系统类型	挂载选项	dump备份支持  文件系统检测
UUID=289370eb-9459-42a8-8cee-7006507f1477   /      ext4    defaults        1 1
1段:挂载的设备(磁盘设备的文件名或设备的卷标或者是设备的UUID)
2段:挂载点(建议用一个空目录),建议不要将多个设备挂载到同一个挂载点上
3段:文件系统类型(ext3、ext4、vfat、ntfs(安装软件包)、swap等等)
4段:挂载选项
dev/nodev		被挂载的设备上的设备文件,是否被识别为设备文件
async/sync  异步/同步 同步利于数据保存 异步利于提高性能
auto/noauto     自动/非自动:
rw/ro   读写/只读:
exec/noexec     被挂载设备中的可执行文件是否可执行
remount     重新挂在一个已经挂载的文件系统,常用于修改挂载参数
user/nouser     允许/不允许其他普通用户挂载:
suid/nosuid     具有/不具有suid权限:该文件系统是否允许SUID的存在。
usrquota    这个是在启动文件系统的时候,让其支持磁盘配额,这个是针对用户的。
grpquota    支持用户组的磁盘配额。
....
defaults 同时具有rw, dev, exec,  async,nouser等参数。

mount -a  重新读取/etc/fstab文件内容

man mount 可以找到详细信息

5段:是否支持dump备份。//dump是一个用来备份的命令,0代表不要做dump备份,1代表要每天进行dump的动作,2也代表其他不定日期的dump备份。通常这个数值不是0就是1。数字越小优先级越高。

6段:是否用 fsck 检验扇区。//开机的过程中,系统默认会用fsck检验文件系统是否完整。0是不要检验,1表示最先检验(一般只有根目录会设定为1),2也是要检验,只是1是最先,2是其次才进行检验。

# fsck -f /dev/sdb2		强制检验/dev/sdb2上文件系统

说明:
要挂载的资源路径可以是文件系统的UUID,设备路径,文件系统的标签 ,光盘镜像文件(iso),亦或是来自网络的共享资源等

自动挂载 Automount:

特点:挂载是由访问产生;卸载是由超时产生;依赖于后台的autofs服务
思路:
1. 所有的监控都是由一个程序完成  autofs
2. 服务启动后才会监控挂载的设备
3. 修改配置文件来指定需要监控的设备


需求:让系统自动挂载/dev/sdb2设备,如果2分钟没有被用自动卸载

步骤:
1)安装autofs软件
[root@localhost ~]# rpm -q autofs
package autofs is not installed
[root@localhost ~]# dnf install autofs

[root@localhost ~]# rpm -q autofs
autofs-5.1.4-29.el8.x86_64
2)修改配置文件(指定需要监控的设备和挂载的目录)
vim /etc/auto.master		//定义一级挂载点/u01和子配置文件
/u01    /etc/auto.test	-t 120 或者 --timeout 120  单位秒   (设置超时时间去卸载)

vim /etc/auto.test			//子配置文件自己创建,定义二级挂载点和需要挂载的设备
test  -fstype=ext4,ro   :/dev/sdb2


3)重启服务
[root@localhost ~]# systemctl restart autofs

4)测试验证
[root@localhost ~]# ls /u01/test
[root@localhost ~]# df -h


后续补充:
如果想要将/dev/sdb2挂载到/u01下,怎么做?
vim /etc/auto.master
/-		/etc/auto.test

vim /etc/auto.test
/u01	-fstype=ext4 :/dev/sdb2

linux磁盘管理-逻辑卷

一、GPT磁盘管理

GPT分区工具:fdisk gdisk

gdisk分区

GPT  128个主分区
[root@localhost ~]# gdisk -l /dev/sdc
[root@localhost ~]# gdisk -l /dev/sdc   查看sdc信息
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present			###GPT分区无法使用


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. 
***************************************************************

Disk /dev/sdc: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): B228357D-34EC-4E47-BB81-A7312F3BCF8D
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         2099199   1024.0 MiB  8300  Linux filesystem
   2         2099200         4196351   1024.0 MiB  8300  Linux filesystem




将MBR转换成GPT分区
[root@localhost ~]# gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: MBR only
  BSD: not present
  APM: not present
  GPT: not present


***************************************************************
Found invalid GPT and valid MBR; converting MBR to GPT format
in memory. THIS OPERATION IS POTENTIALLY DESTRUCTIVE! Exit by
typing 'q' if you don't want to convert your MBR partitions
to GPT format!
***************************************************************


Command (? for help): o
This option deletes all partitions and creates a new protective MBR.
Proceed? (Y/N): y

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.



[root@localhost ~]# gdisk -l /dev/sdc
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present			###GPT可用了

Found valid GPT with protective MBR; using GPT.
Disk /dev/sdc: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 7CA4232A-4A9E-467D-AADD-BB84DB2126E3
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 41942973 sectors (20.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name



#再次分区
[root@localhost ~]# gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.3

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help): n
Partition number (1-128, default 1): 1
First sector (34-41943006, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-41943006, default = 41943006) or {+-}size{KMGTP}: +2G
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help): p
Disk /dev/sdc: 41943040 sectors, 20.0 GiB
Model: VMware Virtual S
Sector size (logical/physical): 512/512 bytes
Disk identifier (GUID): 7CA4232A-4A9E-467D-AADD-BB84DB2126E3
Partition table holds up to 128 entries
Main partition table begins at sector 2 and ends at sector 33
First usable sector is 34, last usable sector is 41943006
Partitions will be aligned on 2048-sector boundaries
Total free space is 37748669 sectors (18.0 GiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         4196351   2.0 GiB     8300  Linux filesystem
Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): y
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.


[root@localhost ~]# partprobe /dev/sdc

2.创建文件系统(格式化)CentOS8默认使用xfs
[root@localhost ~]# mkfs.xfs -f /dev/sdc1


3.挂载
[root@localhost ~]# mkdir /disk1
[root@localhost ~]# mount -t xfs -o ro /dev/sdc1 /disk1		//手动挂载
[root@localhost ~]# umount /disk1		##卸载

二、逻辑卷介绍

逻辑卷:
逻辑卷(LVM):它是Linux环境下对磁盘分区进行管理的一种机制,它是建立在物理存储设备之上的一个抽象层,优点在于灵活管理。
特点:
1、动态在线扩容
2、离线裁剪
3、数据条带化
4、数据镜像

三、逻辑卷概念

zutuanxue.com-linux磁盘管理基本管理

  • 物理卷(Physical Volume,PV)

物理卷是底层真正提供容量,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。

  • 卷组(Volume Group, VG)

卷组建立在物理卷之上,它由一个或多个物理卷组成。即把物理卷整合起来提供容量分配。
一个LVM系统中可以只有一个卷组,也可以包含多个卷组。

  • 逻辑卷(Logical Volume, LV)

逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。逻辑卷创建之后,其大小可以伸缩。

  • 物理区域 PE(physical extent)

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4 MB。 PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小是一致的。
4MB=4096kb=4096kb/4kb=1024个block

  • 逻辑区域 LE(logical extent)

逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

流程

真实的物理设备---->物理卷(pv)---->卷组(vg)---->逻辑卷(lv)------>逻辑卷格式化---->挂载使用

四、逻辑卷管理

逻辑卷LVM应用
4.1 逻辑卷创建

需求:创建一个2.5G大小的逻辑卷

思路:
1. 物理的设备
2. 将物理设备做成物理卷
3. 创建卷组并将物理卷加入其中
4. 创建逻辑卷
5. 格式化逻辑卷
6. 挂载使用

步骤:
1. 物理设备
[root@localhost ~]# lsblk /dev/sdb
NAME   MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdb      8:16   0  20G  0 disk 
├─sdb1   8:17   0   2G  0 part /disk1
├─sdb2   8:18   0   2G  0 part 
├─sdb3   8:19   0   2G  0 part 
├─sdb4   8:20   0   2G  0 part 
└─sdb5   8:21   0   2G  0 part 


2. 创建物理卷
[root@localhost ~]# pvcreate /dev/sdb{1,2}
  Physical volume "/dev/sdb1" successfully created.
  Physical volume "/dev/sdb2" successfully created.
查看物理卷:
[root@localhost ~]# pvs
  PV         VG Fmt  Attr PSize   PFree
  /dev/sda2  cl lvm2 a--  <19.00g    0 
  /dev/sdb1     lvm2 ---    2.00g 2.00g
  /dev/sdb2     lvm2 ---    2.00g 2.00g
[root@localhost ~]# pvscan 
  PV /dev/sda2   VG cl              lvm2 [<19.00 GiB / 0    free]
  PV /dev/sdb1                      lvm2 [2.00 GiB]
  PV /dev/sdb2                      lvm2 [2.00 GiB]
  Total: 3 [<23.00 GiB] / in use: 1 [<19.00 GiB] / in no VG: 2 [4.00 GiB]

[root@localhost ~]# pvdisplay /dev/sdb1 
  "/dev/sdb1" is a new physical volume of "2.00 GiB"
  --- NEW Physical volume ---
  PV Name               /dev/sdb1		#物理卷名称
  VG Name               						#卷组名称
  PV Size               2.00 GiB		#大小
  Allocatable           NO					#是否已分配出去
  PE Size               0   				#PE大小
  Total PE              0						#PE总数
  Free PE               0						#空闲PE
  Allocated PE          0						#可分配PE
  PV UUID               3M4...lT		#UUID


3. 创建卷组并将物理卷加入其中
[root@localhost ~]# vgcreate vg1 /dev/sdb{1,2}
  Volume group "vg1" successfully created
查看卷组信息:
[root@localhost ~]# vgs vg1
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   2   0   0 wz--n- 3.99g 3.99g
  
[root@localhost ~]# vgscan	#扫描系统中有哪些卷组
  Reading all physical volumes.  This may take a while...
  Found volume group "vg1" using metadata type lvm2
  Found volume group "cl" using metadata type lvm2
  
 [root@localhost ~]# vgdisplay vg1
  --- Volume group ---
  VG Name               vg1
  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               3.99 GiB		#卷组大小
  PE Size               4.00 MiB		#PE大小
  Total PE              1022				#PE数量
  Alloc PE / Size       0/0   		#已分配的PE/容量
  Free  PE / Size       1022/3.99 GiB	#可分配的PE/容量
  VG UUID               CQ6p...K9I

4. 创建逻辑卷
[root@localhost ~]# lvcreate -n lv1 -L 2.5G vg1 
  Logical volume "lv1" created.
在操作系统层面映射两个地方:
[root@localhost ~]# ll /dev/mapper/vg1-lv1 
lrwxrwxrwx 1 root root 7 12月 10 05:47 /dev/mapper/vg1-lv1 -> ../dm-2
[root@localhost ~]# ll /dev/vg1/lv1 
lrwxrwxrwx 1 root root 7 12月 10 05:47 /dev/vg1/lv1 -> ../dm-2
[root@localhost ~]# ll /dev/dm-2 
brw-rw---- 1 root disk 253, 2 12月 10 05:47 /dev/dm-2

lvcreate参数
-n:指定逻辑卷的名字
-L:指定逻辑卷的大小
-l:指定逻辑卷的大小
举例:
-l 100			100个PE,每个PE大小默认4M,故逻辑卷大小为400M
-l 50%free		卷组剩余空间的50%
[root@localhost ~]# vgs vg1 
  VG  #PV #LV #SN Attr   VSize VFree
  vg1   2   1   0 wz--n- 3.99g 1.49g
 
创建大小为200M的逻辑卷lv02;每个PE为4M,-l 50指定50个PE,大小为200M
[root@localhost ~]# lvcreate -n lv2 -l 50 vg1
  Logical volume "lv2" created.
[root@localhost ~]# vgs vg1 
  VG  #PV #LV #SN Attr   VSize VFree 
  vg1   2   2   0 wz--n- 3.99g <1.30g

[root@manage01 ~]# lvs /dev/vg01/lv02
  LV   VG   Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convert
  lv02 vg01 -wi-a----- 200.00m  
  
创建大小为剩余卷组vg01空间的50%的逻辑卷lv03
[root@localhost ~]# lvcreate -n lv3 -l 50%free vg1
  Logical volume "lv3" created.
[root@localhost ~]# vgs vg1 
  VG  #PV #LV #SN Attr   VSize VFree  
  vg1   2   3   0 wz--n- 3.99g 664.00m

查看逻辑卷的信息:
[root@localhost ~]# lvs /dev/vg1/lv1 
  LV   VG  Attr       LSize Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1  vg1 -wi-a----- 2.50g                                                    
[root@localhost ~]# lvs /dev/vg1/lv2
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv2  vg1 -wi-a----- 200.00m                                                    
[root@localhost ~]# lvs /dev/vg1/lv3
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv3  vg1 -wi-a----- 664.00m                                                    
[root@localhost ~]# lvdisplay /dev/vg1/lv1 
  --- Logical volume ---
  LV Path                /dev/vg1/lv1
  LV Name                lv1
  VG Name                vg1
  LV UUID                jj9Sj1-zHuo-qpBZ-Dkk1-LVYB-HyUH-LQ6edW
  LV Write Access        read/write
  LV Creation host, time localhost.localdomain, 2019-12-10 05:46:59 -0500
  LV Status              available
  # open                 0
  LV Size                2.50 GiB
  Current LE             640
  Segments               2
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

 
5. 格式化逻辑卷
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1 

6. 挂载使用
1)创建一个空的挂载点
[root@localhost /]# mkdir /lv1
2)挂载使用
[root@localhost /]# mount /dev/vg1/lv1 /lv1/

4.2 逻辑卷动态扩容

需求:将/lv1目录动态扩容到3G

思路:
1. 查看/lv1目录所对应的逻辑卷是哪一个  /dev/mapper/vg1-lv1
2. 查看当前逻辑卷所在的卷组vg1剩余空间是否足够
3. 如果vg1空间不够,得先扩容卷组,再扩容逻辑卷
4. 如果vg1空间足够,直接扩容逻辑卷

步骤:
1. 查看/lv1目录属于哪个卷组
[root@localhost /]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  2.4G  7.5M  2.3G    1% /lv1

[root@localhost /]# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl  -wi-ao---- <17.00g                                                    
  swap cl  -wi-ao----   2.00g                                                    
  lv1  vg1 -wi-ao----   2.50g                                                    
  lv2  vg1 -wi-a----- 200.00m                                                    
  lv3  vg1 -wi-a----- 664.00m                                                    
2. 卷组的剩余空间
[root@localhost /]# vgs
  VG  #PV #LV #SN Attr   VSize   VFree  
  cl    1   2   0 wz--n- <19.00g      0 
  vg1   2   4   0 wz--n-   3.99g 664.00m
结果:当前卷组空间不足我扩容

3. 扩容逻辑卷所在的卷组
1)首先得有物理设备 /dev/sdb3
2) 将物理设备做成物理卷
[root@localhost /]# pvcreate /dev/sdb3 
  Physical volume "/dev/sdb3" successfully created.
[root@localhost /]# pvs
  PV         VG  Fmt  Attr PSize   PFree  
  /dev/sda2  cl  lvm2 a--  <19.00g      0 
  /dev/sdb1  vg1 lvm2 a--   <2.00g      0 
  /dev/sdb2  vg1 lvm2 a--   <2.00g 464.00m
  /dev/sdb3      lvm2 ---    2.00g   2.00g
  3)将物理卷加入到卷组中(卷组扩容)
[root@localhost /]# vgextend vg1 /dev/sdb3 
  Volume group "vg1" successfully extended
[root@localhost /]# pvs
  PV         VG  Fmt  Attr PSize   PFree  
  /dev/sda2  cl  lvm2 a--  <19.00g      0 
  /dev/sdb1  vg1 lvm2 a--   <2.00g      0 
  /dev/sdb2  vg1 lvm2 a--   <2.00g 464.00m
  /dev/sdb3  vg1 lvm2 a--   <2.00g  <2.00g
  
注意:
正常情况下,应该先将/dev/sdb3物理设备创建为物理卷再加入到卷组中;如果直接加入卷组,系统会自动帮你将其做成物理卷。

[root@localhost /]# vgs
  VG  #PV #LV #SN Attr   VSize   VFree 
  cl    1   2   0 wz--n- <19.00g     0 
  vg1   3   4   0 wz--n-  <5.99g <2.45g

4. 扩容逻辑卷
[root@localhost /]# lvextend -L 3G /dev/vg1/lv1 
		-L 3G最终的大小
或者
[root@localhost /]# lvextend -L +1.5G /dev/vg1/lv1 	 -L +1.5G 扩容1.5G

5. 查看结果
[root@localhost /]# lvs
  LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  root cl  -wi-ao---- <17.00g                                                    
  swap cl  -wi-ao----   2.00g                                                    
  lv1  vg1 -wi-ao----   3.00g       已经扩容到了3G
  
[root@localhost /]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  2.4G  7.5M  2.3G    1% /lv1
		实际并没有改变

6. 同步文件系统
[root@localhost /]# resize2fs /dev/vg1/lv1    #该命令适用于ext分区
[root@manage01  ~]# xfs_growfs /dev/vg1/lv1  #该命令适用于xfs分区
7. 再次查看验证
[root@localhost /]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  2.9G  7.5M  2.8G    1% /lv1
		扩容成功


4.3 离线裁剪逻辑卷
[root@localhost /]# umount /lv1
[root@localhost /]# e2fsck -f /dev/vg1/lv1		检验文件系统
[root@localhost /]# resize2fs /dev/vg1/lv1  2G	裁剪文件系统到2G
[root@localhost /]# lvreduce /dev/vg1/lv1 -L 2G	裁剪逻辑卷
[root@localhost /]# mount /dev/vg1/lv1 /lv1/		挂载使用
[root@localhost /]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv1  2.0G  9.0M  1.8G    1% /lv1


xfs裁剪
将lv2的文件系统格式化为xfs
将/dev/vg1/lv2挂载到/lv2
在/lv2中建立一个文件,写入内容
备份数据
卸载分区并裁剪逻辑卷
格式化裁剪后的逻辑卷
导入数据


1)备份数据命令
xfsdump
2)备份数据
[root@localhost /]# xfsdump -f /root/lv2.img /lv2
#挂载点目录后面不要加"/"
xfsdump: using file dump (drive_simple) strategy
xfsdump: version 3.1.8 (dump format 3.0) - type ^C for status and control

 ============================= dump label dialog ==============================

please enter label for this dump session (timeout in 300 sec)
 -> lv2
session label entered: "lv2"

 --------------------------------- end dialog ---------------------------------

xfsdump: level 0 dump of localhost.localdomain:/lv2
xfsdump: dump date: Tue Dec 10 06:33:44 2019
xfsdump: session id: 15936371-b967-4c2c-8995-49eb702792fe
xfsdump: session label: "lv2"
xfsdump: ino map phase 1: constructing initial dump list
xfsdump: ino map phase 2: skipping (no pruning necessary)
xfsdump: ino map phase 3: skipping (only one dump stream)
xfsdump: ino map construction complete
xfsdump: estimated dump size: 20800 bytes

 ============================= media label dialog =============================

please enter label for media in drive 0 (timeout in 300 sec)
 -> lv2
media label entered: "lv2"

 --------------------------------- end dialog ---------------------------------

xfsdump: creating dump session media file 0 (media 0, file 0)
xfsdump: dumping ino map
xfsdump: dumping directories
xfsdump: dumping non-directory files
xfsdump: ending media file
xfsdump: media file size 21016 bytes
xfsdump: dump size (non-dir files) : 0 bytes
xfsdump: dump complete: 14 seconds elapsed
xfsdump: Dump Summary:
xfsdump:   stream 0 /root/lv2.img OK (success)
xfsdump: Dump Status: SUCCESS


3)裁剪
[root@localhost ~]# umount /lv2
[root@localhost ~]# lvreduce /dev/vg1/lv2 -L 100M
  WARNING: Reducing active logical volume to 2.00 GiB.
  THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg01/lv01? [y/n]: y
  Size of logical volume vg01/lv01 changed from 7.00 GiB (1792 extents) to 2.00 GiB (512 extents).
  Logical volume vg01/lv01 successfully resized.

4)格式化
[root@localhost ~]# mkfs.xfs -f /dev/vg1/lv2
[root@localhost ~]# mount /dev/vg1/lv2 /lv2

5)恢复数据 -f source
[root@localhost ~]# xfsrestore -f /root/lv2.img /lv2
.
.
.
xfsrestore: Restore Status: SUCCESS


root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/mapper/vg1-lv2   95M  6.0M   89M    7% /lv2



[root@localhost ~]# cat /lv2/filea 
hahaha


4.4 删除LVM

建立: 分区–PV–VG–LV–挂载–fstab(autofs)–写入数据

删除: 备份重要数据–fstab(autofs)–卸载–LV–VG–PV–分区

1	备份数据(如果有需要)	
2	编辑fstab文件或者autofs服务相关文件,删除相关设置
3	卸载
[root@localhost ~]#umount /lv1
4	删除逻辑卷
[root@localhost ~]#lvremove	/dev/vg1/lv1
5	删除卷组
[root@localhost ~]#vgchange -an vg1 
[root@localhost ~]#vgremove vg1
6	删除物理卷
[root@localhost ~]#pvremove /dev/sdxx
7	删除分区
[root@localhost ~]#fdisk /dev/sdxx
[root@localhost ~]#partprobe

五、课程拓展

swap的作用:swap分区在系统的运行内存不够用的时候,把运行内存中的一部分空间释放出来,以供当前运行的程序使用。那些被释放的空间可能来自一些很长时间没有什么操作的程序,这些被释放的空间被临时保存到swap分区中,等到那些程序要运行时,再从Swap分区中恢复保存的数据到内存中。可以缓解物理内存不足的压力,如果物理内存不足,还没有swap空间,会宕机

5.1、 扩容swap空间

方法1:增加一个设备(硬盘,分区,逻辑卷)来扩容swap空间

查看swap空间大小:
[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:           3918        1309        2002          15         606        2358
Swap:          2047           0        2047

[root@localhost ~]# swapon -s
文件名				类型					大小			已用	权限
/dev/dm-1   partition		2097148			0		-2
[root@localhost ~]# mkswap /dev/sdb4
正在设置交换空间版本 1,大小 = 2 GiB (2147479552  个字节)
无标签,UUID=8235e59a-1043-4251-8694-ba619cb36f1c

[root@localhost ~]# blkid /dev/sdb4
/dev/sdb4: UUID="8...c" TYPE="swap" PARTUUID="b...e"

//激活swap分区。swap空间不能手动挂载
[root@localhost ~]# swapon /dev/sdb4
[root@localhost ~]# swapon -s
文件名						类型				大小		已用	权限
/dev/dm-1       partition	2097148		0		-2
/dev/sdb4       partition	2097148		0		-3


[root@localhost ~]# free -m
      total  used  free shared buff/cache available
Swap:  4095   0    4095

LVM形式
[root@localhost ~]# mkswap /dev/vg1/swap		#创建swap
[root@localhost ~]# swapon /dev/vg1/swap		#开启swap
[root@localhost ~]# lvextend -L 4G	/dev/vg1/swap	#放大LVM形式的swap
[root@localhost ~]# swapoff /dev/vg1/swap		#关闭lvm形式的swap
[root@localhost /]# mkswap /dev/vg1/lv-swap	#重新制作swap
[root@localhost ~]# swapon /dev/vg1/swap		#开启lvm形式的swap
[root@localhost ~]# free -m	#确认swap分区是否放大

方法2:使用dd命令模拟大文件来扩容swap

[root@localhost ~]# dd if=/dev/zero of=/tmp/swapfile bs=1M count=2048

if=源文件,in file指定从哪里读入数据
of=目标文件,out file指定将数据写入什么位置
bs=复制数据的大小,block size
count=复制的个数

注意:
1. 一般可以使用dd命令做块设备文件的备份
2. /dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的数据流;
/dev/null  空设备,类似黑洞

步骤:
1. 使用dd命令模拟大文件
# dd if=/dev/zero of=/tmp/swapfile bs=1M count=2048
2. 格式化大文件
[root@localhost ~]# mkswap /tmp/swapfile 
mkswap: /tmp/swapfile:不安全的权限 0644,建议使用 0600。
正在设置交换空间版本 1,大小 = 2 GiB (2147479552  个字节)
无标签,UUID=3d855316-c97c-42ca-9c52-9df26a4517a0 
[root@localhost ~]# ll /tmp/swapfile 
-rw-r--r-- 1 root root 2147483648 12月 10 21:02 /tmp/swapfile
[root@localhost ~]# chmod 600 /tmp/swapfile 

3.激活大文件
[root@localhost ~]# swapon -p1 /tmp/swapfile
-p:指定优先级,数字越大优先级越高,-1~32767

4. 查看
[root@localhost ~]# swapon -s
文件名							类型				大小			已用	权限
/dev/dm-1         partition	2097148		 268	-2
/dev/sdb4         partition	2097148		 0		-3
/tmp/swapfile     file    	2097148		 0		 1
[root@localhost ~]# free -m
      total used  free  shared  buff/cache available
Swap:  6143  0    6143



如果开机自动挂载,需要修改文件:/etc/fstab
[root@localhost ~]# vim /etc/fstab 
/dev/sda4  			swap    swap     defaults       0 0
/tmp/swapfile   swap    swap     dfaults,pri=1  0 0
[root@localhost ~]# swapon -a

关闭swap
[root@localhost ~]# swapoff /dev/sdb4
[root@localhost ~]# swapoff /tmp/swapfile
或者
[root@localhost ~]# swapoff -a	#关闭所有swap****慎用*****
5.2、逻辑卷实现条带化
条带化:
        把保存到逻辑卷的数据分成n等分,分别写到不同的物理卷,可以提高数据的读写效率;如果任何一个涉及到的物理卷出现故障,数据都会无法恢复。
环境准备:
删除之前创建的逻辑卷
[root@localhost ~]# umount /lv1
[root@localhost ~]# lvremove /dev/vg1/lv1

[root@localhost ~]# lsblk
sdb           8:16   0   20G  0 disk 
├─sdb1        8:17   0    2G  0 part 
├─sdb2        8:18   0    2G  0 part


如果没有物理卷的话,需要先创建物理卷,再创建卷组,如果有物理卷和卷组的话可以直接创建条带化逻辑卷

创建物理卷
[root@manage01 ~]# pvcreate /dev/sdb[12]

查看物理卷
[root@manage01 ~]# pvs
/dev/sdb1            lvm2 a--   2.01g  2.01g
/dev/sdb2            lvm2 a--   2.01g  2.01g


创建卷组:
[root@manage01 ~]# vgcreate vg01 /dev/sdb[12]

[root@manage01 ~]# pvs /dev/sdb[12]
  PV         VG   Fmt  Attr PSize PFree
 /dev/sdb1  vg01      lvm2 a--   2.00g  2.00g
 /dev/sdb2  vg01      lvm2 a--   2.00g  2.00g


创建实现条带化的逻辑卷:
[root@localhost ~]# lvcreate -n lv1 -L 1G vg01 -i 2 /dev/sdb{1,2}

-i 参数:给出条带化的数量
[root@localhost ~]# lvs /dev/vg01/lv01


格式化挂载使用:
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
[root@localhost ~]# mount /dev/vg1/lv1 /lv1


测试:
[root@localhost ~]# dnf install sysstat -y
[root@localhost ~]# iostat -m -d /dev/sdb[12] 2 
-d 查看磁盘
-m 以什么速度显示,每秒M
 2 每隔2s显示一次 
   如果后面还有数字则代表总共显示多少次
   
[root@localhost ~]# dd if=/dev/zero of=/lv1/test bs=1M count=1000    模拟写数据
[root@localhost ~]# iostat -m -d /dev/sdb[12] 1
.
.
.
Device tps  		MB_read/s  MB_wrtn/s MB_read MB_wrtn
sdb1   4015.00  0.01       364.38    0       364
sdb2   4005.00  0.00       364.33    0       364

5.3、逻辑卷实现镜像
逻辑卷实现镜像:
镜像:镜像是一种文件存储形式,是冗余的一种类型,一个磁盘上的数据在另一个磁盘上存在一个完全相同的副本即为镜像。对某个逻辑卷的数据做镜像,起到数据备份的作用。

当前环境:
[root@localhost ~]# lsblk
├─sdb3        8:19   0    2G  0 part 
├─sdb4        8:20   0    2G  0 part 


创建物理卷:
[root@localhost ~]# pvcreate /dev/sdb[34]
[root@localhost ~]# pvs
  PV         VG  Fmt  Attr PSize   PFree 
  /dev/sdb3      lvm2 ---    2.00g  2.00g
  /dev/sdb4      lvm2 ---    2.00g  2.00g

  
 将物理卷加入到vg1卷组:
[root@localhost ~]# vgextend vg1 /dev/sdb[34]
  Volume group "vg1" successfully extended
[root@localhost ~]# vgs
  VG  #PV #LV #SN Attr   VSize   VFree
  vg1   4   1   0 wz--n-   7.98g 6.98g


创建实现镜像的逻辑卷:
[root@localhost ~]# lvcreate -n lv2 -L 1G vg1 -m 1 /dev/sdb[34]
  Logical volume "lv2" created.

-m参数:给出镜像的个数;1表示1个镜像

[root@localhost ~]# lvs -a -o +devices
[root@localhost ~]# lvs -a -o +devices
  LV             VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert Devices                        
  root           cl  -wi-ao---- <17.00g                                                     /dev/sda2(512)                 
  swap           cl  -wi-ao----   2.00g                                                     /dev/sda2(0)                   
  lv1            vg1 -wi-ao----   1.00g                                                     /dev/sdb1(0),/dev/sdb2(0)      
  lv2            vg1 rwi-a-r---   1.00g                                    100.00           lv2_rimage_0(0),lv2_rimage_1(0)
  [lv2_rimage_0] vg1 iwi-aor---   1.00g                                                     /dev/sdb3(1)                   
  [lv2_rimage_1] vg1 iwi-aor---   1.00g                                                     /dev/sdb4(1)                   
  [lv2_rmeta_0]  vg1 ewi-aor---   4.00m                                                     /dev/sdb3(0)                   
  [lv2_rmeta_1]  vg1 ewi-aor---   4.00m                                                     /dev/sdb4(0)         

说明: Cpy%Sync 18.77该值是100%说明复制ok 


格式化逻辑卷:
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv2
挂载使用
[root@localhost ~]# mount /dev/vg1/lv2 /lv2/

[root@localhost ~]# touch /lv2/file{1..10}
[root@localhost ~]# mkdir /lv2/dir{1..10}

 
测试验证:
思路:损坏一个磁盘,测试数据是否在第二个物理卷中
1. 使用dd命令破坏一个物理卷
[root@localhost ~]# dd if=/dev/zero of=/dev/sdb3 bs=1M count=100

2. 再次查看物理卷发现有一个unknown Device    pvs命令
 [unknown]  vg1 lvm2 a-m   <2.00g 1016.00m

3. 将损坏的盘从卷组中移除
[root@localhost ~]# vgreduce vg1 --removemissing --force

4. 再次查看挂载点/lv2数据依然存在

自己也可以再次测试:
1. 再拿刚刚人为损坏的盘做成物理卷再次加入到vg1卷组中
[root@localhost /]# pvcreate /dev/sdb3 
 
[root@localhost /]# vgextend vg1 /dev/sdb3


2. 修复
[root@localhost /]# lvconvert --repair /dev/vg1/lv2 /dev/sdb[34]

5.4、逻辑卷快照
快照的作用:保存做快照那一刻数据的状态,方便用户实现数据回滚,避免重要数据被覆盖。
快照的大小:快照需要占用卷组空间,快照的大小决定了允许有多少数据发生改变,如果制作快照时分配的容量与对应的逻辑卷相同,那么就允许逻辑卷中所有的数据发生改变。
COW:copy on write 当系统检测到做快照的逻辑卷当中的数据发生了改变,会在改变前将逻辑卷中的PE的数据复制到快照中的PE,然后再写入新的数据


1. 创建快照 (EXT4)
[root@localhost /]# lvcreate -L 200M -s -n lv1-snap /dev/vg1/lv1	给lv1逻辑卷创建快照
[root@localhost /]# mount -o ro /dev/vg1/lv1-snap /lv1-snap/	挂载快照

[root@localhost /]# lvscan 
  ACTIVE   Original '/dev/vg1/lv1' [2.00 GiB] inherit
  ACTIVE   Snapshot '/dev/vg1/lv1-snap' [200.00 MiB] inherit


[root@localhost /] dmsetup ls --tree
vg1-lv2--snap (252:5)
 ├─vg1-lv1--snap-cow (253:4)		保存原卷改变前的数据
 │  └─ (8:17)
 └─vg1-lv1-real (253:3)				真实的逻辑卷(原卷)
    ├─ (8:17)
    └─ (8:18)
vg1-lv1 (253:2)
 └─vg1-lv1-real (253:3)
    ├─ (8:17)
    └─ (8:18)
    
2. 修改原卷的数据
[root@localhost /]# dd if=/dev/zero of=/lv1/test bs=1M count=30

3. 观察Snapshot
[root@localhost /]# lvs /dev/vg1/lv1-snap 
  LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1-snap vg1 swi-aos--- 200.00m      lv1    0.02                                   
[root@localhost /]# lvs /dev/vg1/lv1-snap 
  LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convert
  lv1-snap vg1 swi-aos--- 200.00m      lv1    15.10                                  
  

XFS:
[root@node1 ~]# mount -o nouuid,ro /dev/vg1/lv1-snap /lv1-snap
挂载快照,尽量使用ro的方式,将不会破坏快照卷中的数据


快照实现自动扩容:
/etc/lvm/lvm.conf 
snapshot_autoextend_threshold = 80
snapshot_autoextend_percent = 20
//当快照使用到80%时,自动扩容20%;当snapshot_autoextend_threshold = 100表示关闭自动扩容

修改完成后建议重启

linux磁盘管理-RAID

一、RAID介绍

RAID(Redundant Array of Independent Disk 独立冗余磁盘阵列)技术是加州大学伯克利分校1987年提出,最初是为了组合小的廉价磁盘来代替大的昂贵磁盘,同时希望磁盘失效时不会使对数据的访问受损失而开发出一定水平的数据保护技术。RAID就是一种由多块廉价磁盘构成的冗余阵列,在操作系统下是作为一个独立的大型存储设备出现。RAID可以充分发挥出多块硬盘的优势,可以提升硬盘速度,增大容量,提供容错功能,能够确保数据安全性,易于管理的优点,在任何一块硬盘出现问题的情况下都可以继续工作,不会 受到损坏硬盘的影响。

二、常见的RAID级别

1. RAID0

zutuanxue.com-linux磁盘管理基本管理

RAID0特点:

  • 至少需要两块磁盘
  • 数据条带化分布到磁盘,高的读写性能,100%高存储空间利用率
  • 数据没有冗余策略,一块磁盘故障,数据将无法恢复
  • 应用场景:
    • 对性能要求高但对数据安全性和可靠性要求不高的场景,比如音频、视频等的存储。
2. RAID1

zutuanxue.com-linux磁盘管理基本管理

RAID1特点:

  • 至少需要2块磁盘
  • 数据镜像备份写到磁盘上(工作盘和镜像盘),可靠性高,磁盘利用率为50%
  • 读性能可以,但写性能不佳
  • 一块磁盘故障,不会影响数据的读写
  • 应用场景:
    • 对数据安全可靠要求较高的场景,比如邮件系统、交易系统等。
3. RAID5

zutuanxue.com-linux磁盘管理基本管理

RAID5特点:

  • 至少需要3块磁盘
  • 数据条带化存储在磁盘,读写性能好,磁盘利用率为(n-1)/n
  • 以奇偶校验(分散)做数据冗余
  • 一块磁盘故障,可根据其他数据块和对应的校验数据重构损坏数据(消耗性能)
  • 是目前综合性能最佳的数据保护解决方案
  • 兼顾了存储性能、数据安全和存储成本等各方面因素(性价比高)
  • 适用于大部分的应用场景
4. RAID6

zutuanxue.com-linux磁盘管理基本管理

RAID6特点:

  • 至少需要4块磁盘
  • 数据条带化存储在磁盘,读取性能好,容错能力强
  • 采用双重校验方式保证数据的安全性
  • 如果2块磁盘同时故障,可以通过两个校验数据来重建两个磁盘的数据
  • 成本要比其他等级高,并且更复杂
  • 一般用于对数据安全性要求非常高的场合
5. RAID10

zutuanxue.com-linux磁盘管理基本管理

RAID10特点:

  • RAID10是raid1+raid0的组合
  • 至少需要4块磁盘
  • 两块硬盘为一组先做raid1,再将做好raid1的两组做raid0
  • 兼顾数据的冗余(raid1镜像)和读写性能(raid0数据条带化)
  • 磁盘利用率为50%,成本较高
6. 总结
类型 读写性能 可靠性 磁盘利用率 成本
RAID0 最好 最低 100% 较低
RAID1 读快;写一般 50%
RAID5 读:近似RAID0 写:多了校验 RAID0<RAID5<RAID1 (n-1)/n RAID0<RAID5<RAID1
RAID6 读:近似RAID0 写:多了双重校验 RAID6>RAID5 RAID6<RAID5 RAID6>RAID1
RAID10 读:RAID10=RAID0 写:RAID10=RAID1 50% 最高

三、软硬RAID

1. 软RAID

软RAID运行于操作系统底层,将SCSI或者IDE控制器提交上来的物理磁盘,虚拟成虚拟磁盘,再提交给管理程序来进行管理。软RAID有以下特点:

  • 节省成本,系统支持就可以使用相应功能
  • 占用内存空间
  • 占用CPU资源
  • 如果程序或者操作系统故障就无法运行
2. 硬RAID

通过用硬件来实现RAID功能的就是硬RAID,独立的RAID卡,主板集成的RAID芯片都是硬RAID。RAID卡就是用来实现RAID功能的板卡。硬RAID的特点:

  • 硬RAID有独立的运算单元,性能好
  • 可能需要单独购买额外的硬件
  • 不同RAID卡支持的功能不同,需要根据自己的需求选择

四、软raid创建

0. 环境准备

添加一个20G的虚拟硬盘,分成10个2G的分区

1. raid的创建

#####创建RAID0文章来源地址https://www.toymoban.com/news/detail-512220.html

系统中如果没有mdadm命令请安装相关工具:
[root@localhost ~]# which mdadm
/usr/sbin/mdadm
[root@localhost ~]# rpm -qf /usr/sbin/mdadm 
mdadm-4.1-4.el8.x86_64
[root@localhost ~]# dnf install -y mdadm

创建raid0:
[root@localhost ~]# mdadm --create /dev/md0 --raid-devices=2 /dev/sdb1 /dev/sdb2 --level=0
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
或者
[root@localhost ~]# mdadm -C /dev/md0 -l 0 -n 2 /dev/sdb1 /dev/sdb2
-C:创建软raid
-l:指定raid级别
-n:指定raid中设备个数

查看RAID信息:
/proc/mdstat文件记录了所有raid信息
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid0] 
md0 : active raid0 sdb2[1] sdb1[0]
#md0为raid0,两个成员sdb2(第二个成员),sdb1(第一个成员)
      41905152 blocks super 1.2 512k chunks
#一共有多少个块(每块1K)	数据段的大小是512K
#chunk决定了阵列中每个成员盘写入的数据量,大于这个值才会到下一个盘读写
unused devices: <none>

查看指定的RAID信息:
[root@localhost ~]# mdadm -D/--detail /dev/md0
[root@localhost ~]# mdadm  --detail /dev/md0
/dev/md0:	#名称
         Version : 1.2	#工具版本
   Creation Time : Wed Dec 11 03:05:31 2019	#建立时间
   Raid Level : raid0	#类型
   Array Size : 41905152 (39.96 GiB 42.91 GB)#容量
   Raid Devices : 2	#组成RAID的硬盘数量
   Total Devices : 2#成员总数,包含备用磁盘
   Persistence : Superblock is persistent

   Update Time : Wed Dec 11 03:05:31 2019
   State : clean 	#raid的状态
   Active Devices : 2	#活跃的设备数量
   Working Devices : 2	#工作的设备数量
   Failed Devices : 0	#故障的数量
   Spare Devices : 0	#备用设备数量

   Chunk Size : 512K	

	 Consistency Policy : none

   Name : localhost.localdomain:0  (local to host localhost.localdomain)
   UUID : 06b2d3b2:3ace3ddf:b5b65dd7:eb40b040
   Events : 0

Number Major Minor RaidDevice State
 0     8     17    0      	active sync   /dev/sdb1
 1     8     33    1      	active sync   /dev/sdb2

格式化挂载使用:
[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /md0
[root@localhost ~]# mount /dev/md0 /md0/


查看空间使用情况:
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/md0           3.9G  16M  3.7G    1% /md0
#可用空间100%


测试:
[root@localhost ~]# iostat -m -d /dev/sdb1 /dev/sdb2 2
[root@server ~]# dd if=/dev/zero of=/md0/file bs=1M count=1024


创建RAID1
创建raid1:
[root@localhost ~]# mdadm -C /dev/md1 -l 1 -n 2 /dev/sdb3 /dev/sdb4 
查看状态信息:
root@localhost ~]# watch -n1 "cat /proc/mdstat" 	watch命令监控该文件变化情况,1秒钟显示一次
或者直接查看
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 sdb4[1] sdb3[0]
      20953024 blocks super 1.2 [2/2] [UU]
      #两个UU说明状态ok,一个盘故障则显示_U
      [==============>......]  resync = 73.5% (15404032/20953024) finish=0.4min speed=205582K/sec
unused devices: <none>
      #以上信息说明两块盘在进行同步,100%说明同步完成

查看raid1详细信息
[root@localhost ~]# mdadm -D /dev/md1   

格式化挂载使用:
[root@localhost ~]# mkfs.ext4 /dev/md1
[root@localhost ~]# mount /dev/md1 /md1

查看空间使用情况:
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/md1            2.0G  6.0M  1.9G    1% /md1
#可用空间50%

测试验证热插拔:
1. 模拟一块盘故障(将磁盘标记为失效)
[root@localhost ~]# mdadm /dev/md1 -f /dev/sdb3
mdadm: set /dev/sdb1 faulty in /dev/md1

#-f or --fail  表示失效

2. 查看raid1状态
[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] 
md1 : active raid1 sdb4[1] sdb3[0](F)	F表示失效失败
      20953024 blocks super 1.2 [2/1] [_U]
      #_表示有一块盘失效
unused devices: <none>

[root@localhost ~]# mdadm -D /dev/md1
。。。
Number Major Minor RaidDevice State
-      0     0     0      		removed
1      8     33    1          active sync  /dev/sdb4
0      8     17    -          faulty       /dev/sdb3
 #失效盘等待移除
       
3. 移除故障或者失效硬盘(热拔)
[root@localhost ~]# mdadm /dev/md1 -r /dev/sdb3
mdadm: hot removed /dev/sdb3 from /dev/md1

#-r or --remove 表示移除

[root@localhost ~]# mdadm -D /dev/md1
。。。
  Number   Major   Minor   RaidDevice State
       -       0        0        0      removed
       1       8       33        1      active sync   /dev/sdb4

4. 加入新的磁盘到raid1中(热插)
[root@localhost ~]# mdadm  /dev/md1 -a /dev/sdb5
mdadm: added /dev/sdd5

#-a or --add 表示增加

[root@localhost ~]# cat /proc/mdstat 

创建RAID5
创建raid5:
[root@localhost ~]# mdadm -C /dev/md5 -l 5 -n 3 -x 1 /dev/sdb{6,7,8,9}

#-x, --spare-devices=  表示指定热备盘

[root@localhost ~]# cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] 
md5 : active raid5 sdb8[4] sdb9[3](S) sdb7[1] sdb6[0]	#S备用盘
      4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/3] [UUU]
      
unused devices: <none>


说明:热备盘表示当其中一块盘故障后,热备盘会立马顶上去,而不需要人为手动干预。

[root@localhost ~]# mdadm -D /dev/md5 		查看详细信息
。。。
    Number   Major   Minor   RaidDevice State
       0       8       22        0      active sync   /dev/sdb6
       1       8       23        1      active sync   /dev/sdb7
       4       8       24        2      active sync   /dev/sdb8

       3       8       25        -      spare   /dev/sdb9


格式化挂载使用:
[root@localhost ~]# mkfs.ext4 /dev/md5
[root@localhost ~]# mkdir /md5
[root@localhost ~]# mount /dev/md5 /md5/


查看空间使用情况:
[root@localhost ~]# df -h
文件系统             容量  已用  可用 已用% 挂载点
/dev/md5             3.9G   16M  3.7G    1% /md5
#可用空间 (磁盘数量-1)x 单一磁盘容量

测试热备磁盘作用:
1. 标记一块活动盘失效
[root@localhost /]# mdadm /dev/md5 -f /dev/sdb6
mdadm: set /dev/sdb6 faulty in /dev/md5

立即查看状态:
[root@localhost /]# cat /proc/mdstat 
Personalities : [raid0] [raid1] [raid6] [raid5] [raid4] 
md5 : active raid5 sdb8[4] sdb9[3] sdb7[1] sdb6[0](F)
说明:
sdb6(F)失效后,原来的sdb9(S)热备盘立马顶上去同步数据
      4188160 blocks super 1.2 level 5, 512k chunk, algorithm 2 [3/2] [_UU]
      [==>..................]  recovery = 13.0% ..          
unused devices: <none>

[root@localhost /]# mdadm -D /dev/md5
...
      Number   Major   Minor   RaidDevice State
       3       8       25        0      active sync   /dev/sdb9
       1       8       23        1      active sync   /dev/sdb7
       4       8       24        2      active sync   /dev/sdb8

       0       8       22        -      faulty   /dev/sdb6

       
2. 移除失效的盘
[root@localhost /]# mdadm  /dev/md5 -r /dev/sdb6 
mdadm: hot removed /dev/sdb6 from /dev/md5


3. 为了日后考虑,再次添加一个热备盘到raid5中
[root@localhost /]# mdadm /dev/md5 -a /dev/sdb6
mdadm: added /dev/sdb6
2. 保存RAID信息
问:为什么要保存raid信息?
答:如果不做信息的保存,在CentOS6中,重启系统后raid不能自动被识别到,7,8系统中不会出现这种状况。
1. 创建配置文件
[root@localhost ~]# mdadm -D --scan >> /etc/mdadm.conf 
[root@localhost ~]# cat /etc/mdadm.conf 
ARRAY /dev/md/1 metadata=1.2 name=localhost.localdomain:1 UUID=170d690d:4f7ccd02:646c3ce0:8f6012be
ARRAY /dev/md/0 metadata=1.2 name=localhost.localdomain:0 UUID=a845702e:9251cae9:25d1bc8b:9a337df2
ARRAY /dev/md/5 metadata=1.2 spares=1 name=localhost.localdomain:5 UUID=d49e6cca:5312271b:7e8e83d5:adac4ed5

3. raid停止与启动
以RAID5为例说明:
停止raid:
1. 卸载raid
[root@localhost ~]# umount /md5 
2. 使用命令停止raid
[root@localhost ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md5

启动raid:
1. 配置文件(/etc/mdadm.conf)存在如下启动
[root@localhost ~]# mdadm -A /dev/md5
mdadm: /dev/md5 has been started with 3 drives and 1 spare.

#-A:Assemble a pre-existing array  表示装载一个已存在的raid

2. 配置文件(/etc/mdadm.conf)不存在如下启动
[root@localhost ~]# mdadm -A /dev/md5 /dev/sdb[6789]
mdadm: /dev/md5 has been started with 3 drives and 1 spare.

3. 如果设备名不知道,可以去查看每个设备的raid信息,使用uuid把raid设备重新组合
[root@localhost ~]# mdadm -E /dev/sdb6 | grep UUID
     Array UUID : d49e6cca:5312271b:7e8e83d5:adac4ed5
    Device UUID : b933b8d5:04a6e003:90e9b230:d13cacf5

 说明:同一个raid里每个磁盘查看的UUID都是这个值
。。。
[root@localhost ~]# mdadm -E /dev/sdb7 | grep UUID
     Array UUID : d49e6cca:5312271b:7e8e83d5:adac4ed5
    Device UUID : b8ca85bd:7809faa4:48882a21:98ef9349

通过以上方法找到后进行重新组合,如下:
[root@localhost ~]# mdadm -A --uuid=d49e6cca:5312271b:7e8e83d5:adac4ed5 /dev/md5
mdadm: /dev/md5 has been started with 3 drives and 1 spare.

4. raid的删除
1. 卸载设备
[root@localhost ~]# umount /md5/
2. 移除所有磁盘
[root@localhost ~]# mdadm /dev/md5 -f /dev/sdb[6789]
mdadm: set /dev/sdb6 faulty in /dev/md5
mdadm: set /dev/sdb7 faulty in /dev/md5
mdadm: set /dev/sdb8 faulty in /dev/md5
mdadm: set /dev/sdb9 faulty in /dev/md5
[root@localhost ~]# mdadm /dev/md5 -r /dev/sdb[6789]
mdadm: hot removed /dev/sdb6 from /dev/md5
mdadm: hot removed /dev/sdb7 from /dev/md5
mdadm: hot removed /dev/sdb8 from /dev/md5
mdadm: hot removed /dev/sdb9 from /dev/md5

3. 停止raid
[root@localhost ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md5

4. 擦出超级块(superblock)清除相关信息
[root@localhost ~]# mdadm --zero-superblock /dev/sdb[6789]

到了这里,关于zutuanxue.com-linux磁盘管理基本管理的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Linux磁盘管理

    目录 一、建立磁盘分区 Ⅰ.查看磁盘信息 Ⅱ.扫盘操作 Ⅲ.选择磁盘设备进行操作 Ⅳ.格式化文件系统并挂载 二、LVM  Ⅰ、逻辑卷的创建过程 (1)PV(Physical Volume,物理卷) (2)VG(Volume Group,卷组) (3)LV(Logical Volume,逻辑卷)  PE(Physical Extend,物理拓展) Ⅱ、操作命

    2024年02月01日
    浏览(13)
  • Linux 配置与磁盘管理

    Linux系统内核中的udev设备管理器会自动把硬件名称规范起来,目的是让用户通过设备文件的名字可以猜出设备大致的属性以及分区信息等。 如:/dev/sda5这个设备文件名称所包含信息     说明: /dev:表示硬件设备文件所在的目录,也就是我们添加上面硬件设备到系统上,那么

    2023年04月26日
    浏览(15)
  • 【Linux】常用磁盘管理命令

    人不走空                                                                          目录   🌈个人主页:人不走空       💖系列专栏:算法专题 ⏰诗词歌赋:斯是陋室,惟吾德馨 一、查看磁盘信息: 二、分区与挂载: 三、磁盘容量与使用情况: 四、磁盘性能

    2024年02月03日
    浏览(38)
  • 第六章 Linux 磁盘管理

    如果我们想在系统中增加一块硬盘用于数据存取,那么大概需要以下步骤: 目的,一是为了分割硬盘空间方便管理,更重要的是让各个分区都基本独立开来,这样如果某个区发生问题,至少不会直接影响到其他分区。 举例:如果把一块磁盘比喻成一大块地,那么对磁盘进行

    2024年02月04日
    浏览(56)
  • Linux 磁盘管理及磁盘分区(主分区、扩展分区、逻辑分区)

    目录 1 MBR与磁盘分区 1.1 分区的意义  1.2 MBR分区 1.2 磁盘分区的表示 1.3 磁盘分区结构 2 文件系统 2.1 XFS  2.2 swap 2.3 FAT16、FAT32 2.4 EXT4 2.5 JFS 3 磁盘分区工具 3.1 fdisk  3.2 添加磁盘  3.3 磁盘分区 3.4 blkid ​编辑 3.5 mkfs 4 挂载及永久挂载 4.1 mount 4.2 临时挂载  4.3 永久挂载 wind

    2024年02月08日
    浏览(52)
  • 【Linux】磁盘分区管理及挂载/永久挂载管理

    👨‍🎓 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 🐋 希望大家多多支持,我们一起进步!😄 🎉如果文章对你有帮助的话,欢迎 点赞 👍🏻 评论 💬 收藏

    2024年02月04日
    浏览(46)
  • 【linux】:模拟文件基本操作以及文件在磁盘中如何存储的学习

        文章目录 前言 一、模拟C库文件操作 二、磁盘文件 总结   经过我们上一篇对linux系统文件操作的学习想必我们已经会使用系统文件接口了,今天我们就用系统文件接口来封装一个像C语言库那样的文件操作函数的函数来加深我们对文件操作的学习。   首先我们创建相应的

    2023年04月14日
    浏览(46)
  • Linux磁盘管理之LVM实践

    ext4是第四代扩展文件系统(Fourth EXtended filesystem,缩写为ext4)是linux系统下的日志文件系统,是ext3文件系统的后继版本。 xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术。 centos7.0开始默认文件系统是xfs,centos

    2024年01月20日
    浏览(53)
  • Linux--磁盘存储管理 挂载(临时、永久)

    我们前面讲了 磁盘的分区,接着讲了 给磁盘安装文件系统(格式化) 继而就得讲讲本篇的内容了-挂载,我们上篇在 格式化文章的最后我们说 得和Linux 系统建立联系,那么这个建立联系就是我们今天要讲的 挂载 ~!!! 那什么是挂载 ?? 官方 : 将一个分区或者设备 挂载

    2024年02月05日
    浏览(92)
  • Linux基础笔记18 | 磁盘分区管理

    fdisk 这个古老的软件并不认识 GPT ,所以 fdisk 只支持 MBR 的分区模式,且磁盘小于2T,大于了就不能使用 fdisk 进行分区了 新磁盘的分区 一块新加的磁盘的分区方式 检查系统中需要分区的磁盘 fdisk -l 对新磁盘进行磁盘分区 fdisk /dev/sdb 进入交互式分区界面 键入 m 获取帮助信息

    2024年02月03日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包