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

二、熟悉磁盘的工作原理

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

机械磁盘剖析图

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

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

磁盘术语

磁盘

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

磁头

负责读取盘面数据的设备

磁道

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

扇区

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

磁柱

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

三、磁盘的性能指标

影响磁盘性能的指标

寻道时间(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)

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

​ 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 -mtotal        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 -mtotal        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 -mtotal        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 -mtotal        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/sdb5. 格式化分区
[root@localhost ~]# mkfs.xfs /dev/sdb1
[root@localhost ~]# mkfs.vfat /dev/sdb26. 创建新的挂载点
[root@localhost ~]# mkdir /u01
[root@localhost ~]# mkdir /u027. 挂载使用
[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/sdb23)重启服务
[root@localhost ~]# systemctl restart autofs4)测试验证
[root@localhost ~]# ls /u01/test
[root@localhost ~]# df -h后续补充:
如果想要将/dev/sdb2挂载到/u01下,怎么做?
vim /etc/auto.master
/-      /etc/auto.testvim /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.3Partition table scan:MBR: MBR onlyBSD: not presentAPM: not presentGPT: 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  Name1            2048         2099199   1024.0 MiB  8300  Linux filesystem2         2099200         4196351   1024.0 MiB  8300  Linux filesystem将MBR转换成GPT分区
[root@localhost ~]# gdisk /dev/sdc
GPT fdisk (gdisk) version 1.0.3Partition table scan:MBR: MBR onlyBSD: not presentAPM: not presentGPT: 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): yCommand (? for help): wFinal 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.3Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: 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.3Partition table scan:MBR: protectiveBSD: not presentAPM: not presentGPT: presentFound 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  Name1            2048         4196351   2.0 GiB     8300  Linux filesystem
Command (? for help): wFinal 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/sdc2.创建文件系统(格式化)CentOS8默认使用xfs
[root@localhost ~]# mkfs.xfs -f /dev/sdc13.挂载
[root@localhost ~]# mkdir /disk1
[root@localhost ~]# mount -t xfs -o ro /dev/sdc1 /disk1        //手动挂载
[root@localhost ~]# umount /disk1      ##卸载

二、逻辑卷介绍

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

三、逻辑卷概念

  • 物理卷(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 ~]# pvsPV         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                        #空闲PEAllocated PE          0                        #可分配PEPV UUID               3M4...lT        #UUID3. 创建卷组并将物理卷加入其中
[root@localhost ~]# vgcreate vg1 /dev/sdb{1,2}Volume group "vg1" successfully created
查看卷组信息:
[root@localhost ~]# vgs vg1VG  #PV #LV #SN Attr   VSize VFreevg1   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 lvm2Found volume group "cl" using metadata type lvm2[root@localhost ~]# vgdisplay vg1--- Volume group ---VG Name               vg1System ID             Format                lvm2Metadata Areas        2Metadata Sequence No  1VG Access             read/writeVG Status             resizableMAX LV                0Cur LV                0Open LV               0Max PV                0Cur PV                2Act PV                2VG 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...K9I4. 创建逻辑卷
[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-2lvcreate参数
-n:指定逻辑卷的名字
-L:指定逻辑卷的大小
-l:指定逻辑卷的大小
举例:
-l 100          100个PE,每个PE大小默认4M,故逻辑卷大小为400M
-l 50%free      卷组剩余空间的50%
[root@localhost ~]# vgs vg1 VG  #PV #LV #SN Attr   VSize VFreevg1   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 vg1Logical 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/lv02LV   VG   Attr       LSize   Pool Origin Data%  Move Log Cpy%Sync Convertlv02 vg01 -wi-a----- 200.00m  创建大小为剩余卷组vg01空间的50%的逻辑卷lv03
[root@localhost ~]# lvcreate -n lv3 -l 50%free vg1Logical 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 Convertlv1  vg1 -wi-a----- 2.50g
[root@localhost ~]# lvs /dev/vg1/lv2LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv2  vg1 -wi-a----- 200.00m
[root@localhost ~]# lvs /dev/vg1/lv3LV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv3  vg1 -wi-a----- 664.00m
[root@localhost ~]# lvdisplay /dev/vg1/lv1 --- Logical volume ---LV Path                /dev/vg1/lv1LV Name                lv1VG Name                vg1LV UUID                jj9Sj1-zHuo-qpBZ-Dkk1-LVYB-HyUH-LQ6edWLV Write Access        read/writeLV Creation host, time localhost.localdomain, 2019-12-10 05:46:59 -0500LV Status              available# open                 0LV Size                2.50 GiBCurrent LE             640Segments               2Allocation             inheritRead ahead sectors     auto- currently set to     8192Block device           253:25. 格式化逻辑卷
[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 /]# lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot 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 /]# vgsVG  #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 /]# pvsPV         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.00g3)将物理卷加入到卷组中(卷组扩容)
[root@localhost /]# vgextend vg1 /dev/sdb3 Volume group "vg1" successfully extended
[root@localhost /]# pvsPV         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 /]# vgsVG  #PV #LV #SN Attr   VSize   VFree cl    1   2   0 wz--n- <19.00g     0 vg1   3   4   0 wz--n-  <5.99g <2.45g4. 扩容逻辑卷
[root@localhost /]# lvextend -L 3G /dev/vg1/lv1 -L 3G最终的大小
或者
[root@localhost /]# lvextend -L +1.5G /dev/vg1/lv1     -L +1.5G 扩容1.5G5. 查看结果
[root@localhost /]# lvsLV   VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertroot 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% /lv1xfs裁剪
将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: SUCCESS3)裁剪
[root@localhost ~]# umount /lv2
[root@localhost ~]# lvreduce /dev/vg1/lv2 -L 100MWARNING: 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]: ySize 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 /lv25)恢复数据 -f source
[root@localhost ~]# xfsrestore -f /root/lv2.img /lv2
.
.
.
xfsrestore: Restore Status: SUCCESSroot@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 -mtotal        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 -mtotal  used  free shared buff/cache available
Swap:  4095   0    4095LVM形式
[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=2048if=源文件,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~327674. 查看
[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 -mtotal 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 以什么速度显示,每秒M2 每隔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 ~]# pvsPV         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 ~]# vgsVG  #PV #LV #SN Attr   VSize   VFreevg1   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 +devicesLV             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=1002. 再次查看物理卷发现有一个unknown Device    pvs命令[unknown]  vg1 lvm2 a-m   <2.00g 1016.00m3. 将损坏的盘从卷组中移除
[root@localhost ~]# vgreduce vg1 --removemissing --force4. 再次查看挂载点/lv2数据依然存在自己也可以再次测试:
1. 再拿刚刚人为损坏的盘做成物理卷再次加入到vg1卷组中
[root@localhost /]# pvcreate /dev/sdb3 [root@localhost /]# vgextend vg1 /dev/sdb32. 修复
[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] inheritACTIVE   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=303. 观察Snapshot
[root@localhost /]# lvs /dev/vg1/lv1-snap LV       VG  Attr       LSize   Pool Origin Data%  Meta%  Move Log Cpy%Sync Convertlv1-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 Convertlv1-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

RAID0特点:

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

2. RAID1

RAID1特点:

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

3. RAID5

RAID5特点:

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

4. RAID6

RAID6特点:

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

5. RAID10

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

系统中如果没有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 persistentUpdate Time : Wed Dec 11 03:05:31 2019State : clean   #raid的状态Active Devices : 2  #活跃的设备数量Working Devices : 2 #工作的设备数量Failed Devices : 0  #故障的数量Spare Devices : 0 #备用设备数量Chunk Size : 512K    Consistency Policy : noneName : localhost.localdomain:0  (local to host localhost.localdomain)UUID : 06b2d3b2:3ace3ddf:b5b65dd7:eb40b040Events : 0Number Major Minor RaidDevice State0     8     17    0        active sync   /dev/sdb11     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      removed1       8       33        1      active sync   /dev/sdb44. 加入新的磁盘到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 State0       8       22        0      active sync   /dev/sdb61       8       23        1      active sync   /dev/sdb74       8       24        2      active sync   /dev/sdb83       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 State3       8       25        0      active sync   /dev/sdb91       8       23        1      active sync   /dev/sdb74       8       24        2      active sync   /dev/sdb80       8       22        -      faulty   /dev/sdb62. 移除失效的盘
[root@localhost /]# mdadm  /dev/md5 -r /dev/sdb6
mdadm: hot removed /dev/sdb6 from /dev/md53. 为了日后考虑,再次添加一个热备盘到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  表示装载一个已存在的raid2. 配置文件(/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 UUIDArray UUID : d49e6cca:5312271b:7e8e83d5:adac4ed5Device UUID : b933b8d5:04a6e003:90e9b230:d13cacf5说明:同一个raid里每个磁盘查看的UUID都是这个值
。。。
[root@localhost ~]# mdadm -E /dev/sdb7 | grep UUIDArray UUID : d49e6cca:5312271b:7e8e83d5:adac4ed5Device 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/md53. 停止raid
[root@localhost ~]# mdadm --stop /dev/md5
mdadm: stopped /dev/md54. 擦出超级块(superblock)清除相关信息
[root@localhost ~]# mdadm --zero-superblock /dev/sdb[6789]

zutuanxue.com-linux磁盘管理基本管理相关推荐

  1. Linux 磁盘原理与管理 (分区 挂载)

    目前硬盘与主机系统的联系主要有几种传输介面规格: IDE介面:         IDE介面插槽所使用的排线较宽,每条排线上面可以接两个IDE装置,由於可以接两个装置,那为了判别两个装置的主/从架构, ...

  2. Linux磁盘分区和管理

    文章目录 一 添加硬盘,创建Linux分区 1.首先准备一块新的硬盘 2.检查系统是否识别了硬盘 3.对磁盘进行分区 3-1 创建MBR磁盘分区 3-2 创建文件系统 3-3 挂载文件系统 二 创建交 ...

  3. linux磁盘管理命令 lv,Linux磁盘管理--LVM原理及基本操作

    LVM(Logical Volume Manager)逻辑卷管理是Linux磁盘管理中的常用操作, 本文主要描述LVM的基本原理以及对LVM的扩展和缩减的基本操作. LVM实质是过软件方式将多个物理分 ...

  4. linux磁盘管理系列一:磁盘配额管理

    磁盘管理系列 linux磁盘管理系列一:磁盘配额管理   http://www.cnblogs.com/zhaojiedi1992/p/zhaojiedi_linux_040_quota.html l ...

  5. linux 磁盘管理上(分区操作,格式化文件,挂载和卸载)

    一:检测并确认新磁盘,规划磁盘分区 首先加硬盘进去,fdisk -l  查看磁盘分区 device     分区的设备文件名称 boot         是否是引导分区.是 则有*表示 start   ...

  6. Linux学习笔记——Linux磁盘管理

    Linux中的分区管理工具主要有:fdisk, parted, sfdisk fdisk命令 对于一块硬盘最多只能管理15个分区 命令格式:fdisk -l [-u] [device...] fdis ...

  7. Linux磁盘分区管理(转载)

    Linux磁盘管理 硬盘基本知识 track: 磁道是有厂商划分好的,一个磁道能存多少数据跟盘片的密度有关系.磁头若保持在一个位置上,则每个磁头都会在磁盘表面划出一个圆形轨迹,这些圆形轨迹就叫做磁道. ...

  8. Linux磁盘管理基础学习

    Linux 磁盘管理常用三个命令为 df.du 和 fdisk. df(英文全称:disk full):列出文件系统的整体磁盘使用量 du(英文全称:disk used):检查磁盘空间使用量 fdis ...

  9. linux 磁盘管理3板斧,Linux 磁盘管理的命令

    Linux   磁盘管理 磁盘分区及挂载: 先查询系统的使用情况: 使用fdisk -l语句 查询结果: 进行磁盘的新建:***添加磁盘时系统必须处于关机状态** 在进行对系统磁盘的使用情况的查询 查 ...

  10. linux空间管理,教你玩转Linux—磁盘管理

    导读 Linux磁盘管理好坏直接关系到整个系统的性能问题,Linux磁盘管理常用三个命令为df.du和fdisk. df df命令参数功能:检查文件系统的磁盘空间占用情况.可以利用该命令来获取硬盘被占 ...

最新文章

  1. 给用户培训的几点感受
  2. 异常处理:Mybatis报错:There is no getter for property named ‘xxxx‘ in ‘class xxx‘
  3. Jmeter之创建Kafka生产者和消费者进行性能测试
  4. 程序员面试题精选100题(23)-跳台阶问题[算法]
  5. Python常用模块之configparser
  6. 跟踪调试JDK源码时遇到的问题及解决方法
  7. MySQL模糊查询—is null关键字
  8. mui 时间样式错乱_微信公众号素材样式中心在哪?公众号动态分割线怎么添加?...
  9. 禁用,元素设置为不可点击
  10. excel vba移位运算
  11. android支付宝免密支付功能,手机支付宝如何将免密支付功能关闭掉
  12. ardruino控制继电器_用 Arduino 实现带继电器的拨动开关
  13. 花生壳内网发布外网可以访问的网站
  14. 「文章重现」2019发表在NBT的10x sc-ATAC-seq分析重现
  15. excel表格打印每页都有表头_怎样设置Word表格打印时每页都显示表头?不会的看看这篇教程!...
  16. 在天翼网关2.0上如何使用自己的路由器
  17. CCF201509-1数列分段(C语言)
  18. idea中ctrl+shift+f(在文件中查找)失效,全图文解决方案
  19. 任务管理器不显示gpu_Windows 10将在任务管理器中显示GPU温度
  20. 如何查看线程的详细信息

热门文章

  1. python是不是比c语言难_解答:为什么很多人觉得C语言很难?
  2. presto计算日期间隔天数或者小时间隔——date_diff函数使用
  3. cad批量打印_BIM智库 | CAD批量打印软件免费版
  4. 我的世界电脑版java路径_我的世界启动器Java路径怎么设置?java路径设置攻略
  5. 数位云开发者平台:室内定位api接入文档
  6. 单片机学会了有出路吗?学单片机有什么用?
  7. c语言字母加单引号和不加,C语言单引号和双引号的区别
  8. 蜘蛛爬行策略或网络抓取
  9. 史上最强C语言教程----程序的编译与预处理(1)
  10. 【python爬虫】猫眼电影TOP100电影封面下载