【Linux】-学习笔记04

第十二章、磁盘管理

1.查看磁盘空间使用量

1.1df命令

作用:

列出文件系统的磁盘空间占用情况

df,disk free,通过文件系统来快速获取空间大小的信息,当我们删除一个文件的时候,这个文件

不是马上就在文件系统当中消失了,而是暂时消失了,当所有程序都不用时,才会根据OS的规则释放掉已经删除的文件, df记录的是通过文件系统获取到的文件的大小,他比du强的地方就是能够看到已经删除的文件,而且计算大小的时候,把这一部分的空间也加上了,更精确了。

格式:

df -参数 目录或文件名

参数:

-a:列出所有的文件系统,包括系统特有的/proc等文件系统
-k:以KB的容量显示各文件系统
-m:以MB的容量显示各文件系统
-h:以人们较易阅读的GB,MB,KB等格式自行显示
-H:以M=1000K替代M=1024K的进位方式
-T:连同该分区的文件系统名称(例如ext3)也列出
-i:不用硬盘容量,而以inode的数量来显示

示例:

df -a

df -k

df -m

df -h

df -H

df -i

1.2du命令

作用:

du:显示磁盘空间使用量(统计目录或文件所占磁盘空间大小),在默认情况下,文件大小的单位

是KB。

du,disk usage,是通过搜索文件来计算每个文件的大小然后累加,du能看到的文件只是一些当前

存在的,没有被删除的。他计算的大小就是当前他认为存在的所有文件大小的累加和,当文件系统

也确定删除了该文件后,这时候du与df就一致了。

格式:

du -参数 文件或目录名

参数:

-a : 列出所有的文件与目录容量,因为默认仅统计目录下面的文件量而已;
-h : 以人们较易读的容量格式(G/M)显示;
-s : 列出总量,而不列出每个个别的目录占用了容量;
-S : 不包括子目录下的总计,与-s有点差别;
-k : 以KB列出容量显示;
-m : 以MB列出容量显示。

示例:

du -a

2.RAID

2.1 概念

当今CPU性能每年可提升30%-50%但硬盘仅提升7%。

硬盘在服务器中需要持续、频繁、大量的I/O操作,故障机率较大,则需要对硬盘进行技术改造,提升读写性能、可靠性。

1988年,加利福尼亚大学伯克利分校首次提出并定义了RAID技术概念。

原理:RAID(Redundant Array of Independent Disks)将多个硬盘设备组成一个大容量、安全更

好的磁盘阵列,并将数据切割成多个片段后分别存储到不同的物理硬盘上,利用分散读写技术来来

提升硬盘性能,同时也备份了多个副本到不同硬盘中,拥有了备份冗余功能。

2.2 常见的RAID组件方案

RAID0

原理:把至少2块硬盘通过硬件或软件方式串联,组成一个大的卷组,并将数据依次写入到各个硬盘

优点:数据同步传输,读取/写入分开,性能大大提升

缺点:若任意一块硬盘故障会导致整个系统的数据损坏,无备份冗余能力错误修复能力

总结:使用率100%,至少2块磁盘才能使用,优点是快,提升磁盘的读写速度,缺点是不安全

RIAD1

产生原因:若生产环境对硬盘的读写速度没有较大要求,但希望增加数据安全性时可使用RAID

原理:把至少2块硬盘绑定起来,写入数据时将数据同时也写入另一或多块硬盘中,

本质:多个硬盘作为镜像备份

优点:数据备份冗余安全性大大提升

缺点:硬盘利用率下降

总结:是镜像,使用两块磁盘,一式两份的方式,支持容错,冗余,数据安全不丢失,缺点是速度

不快,使用率50%,成本较大。

RAID5

产生原因:兼顾"读写速度"、"数据安全"、"成本"的一种折中方式

原理:需至少三块硬盘,将数据分块存储到不同硬盘中,硬盘中必须存储其它一个硬盘的parity(奇

偶校验信息)

优点:兼顾性能,通过"奇偶校验"替代"镜像备份"

缺点:硬盘数据安全性较低

总结:使用率(n-1)/n*容量,磁盘坏了会立即补上,数据会恢复

RAID10

本质:RAID1+RAID0 的组合

原理:至少需要4块硬盘,先制作两两的RAID1阵列,以保证安全性,在两两制作RAID0,以提高读

写速度

优点:兼具速度和安全性

缺点:成本较高

2.3 mdadm命令

作用:

管理系统中的RAID磁盘阵列

格式:

mdadm [模式] <RAID设备名> -参数 [成员设备名称]

参数:

-a :检测设备名称
-n :指定硬盘数量
-l :指定RAID级别
-C :创建RAID
-v :显示过程
-f :模拟设备损坏
-r :移除设备
-Q : 查看摘要
-D :查看详细信息
-S :停止RAID磁盘阵列

示例:

关机后添加4块硬盘,创建RAID10

分析:

-Cv:创建RAID 并显示过程

/dev/md0:新的RAID阵列名

-a yes:检测并自动创建RAID设备文件

-n 4:硬盘数量为4块

-l 10:RAID级别为RAID10

查看信息

mdadm -D /dev/md0

2.4 取消RAID

注意:实际生产环境中,若取消RAID10之前必须备份出其数据,否则已存在数据无法使用

[root@server ~]# umount /dev/md0
[root@server ~]# vim /etc/fstab # 删除开机挂载项,切记
[root@server ~]# mdadm -S /dev/md0 # 停止
mdadm: stopped /dev/md0

2.5 RAID 备份盘技术

产生原因:

在RAID10中若RAID1中的某个硬盘损坏,在修复完毕前恰巧另一块RAID1的硬盘也损坏,则数据就彻底丢失。

原理:

在RAID中添加一个大容量的备份盘来预防此类事故,某块硬盘故障,备份盘同步恢复,无须人工干预。

分析RAID10需要4块硬盘,备份盘需要1块硬盘,共5块硬盘。

3.管理逻辑卷

3.1工作原理

产生原因:

硬盘分区或部署为RAID后在修改分区大小时就非常不容易,此时用户随着实际的需求变化而动态调整硬盘分区大小时受到限制,无灵活性

LVM(Logical Volume Manager )允许用户对硬盘资源进行动态调整

认识Linux逻辑卷:

LVM是 Logical Volume Manager(逻辑卷管理)的简写,LVM将若干个磁盘或者磁盘分区连接为一个

整块的卷组,形成一个存储池。

通过LVM技术,屏蔽了磁盘分区的底层差异,管理员可以在卷组上任意创建逻辑卷,并进一步在逻

辑卷上创建文件系统

管理员通过LVM可以方便的调整存储卷组的大小,并且可以对磁盘存储按照组的方式进行命名、管

理和分配。

假设有三块磁盘/dev/sdb、/dev/sdc和/dev/sdd用来划分逻辑卷,LVM模型如图所示:

3.2LVM基本概念

PE(physical extent)物理区域 :物理区域是物理卷中可用于分配的最小存储单元,物理区域的大小默认为4MB。物理区域大小一旦确定将不能更改,同一卷组中的所有物理卷的物理区域大小需要一致.
物理卷(physical volume) :简称PV,物理卷可以是整个硬盘、硬盘分区或从逻辑上与磁盘分区

具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁

盘等)比较,却包含有与LVM相关的管理参数。
卷组(Volume Group) :简称VG,可以看成单独的逻辑磁盘,建立在PV之上,一个卷组中至少

要包括一个PV,在卷组建立之后可以动态的添加PV到卷组中。卷组的名称可以自定义。
逻辑卷(logical volume) :简称LV,相当于物理分区。逻辑卷建立在卷组之上,卷组中的未分配

空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态的扩展或缩小空间。系统中的多个逻辑卷,

可以属于同一个卷组,也可以属于不同的多个卷组。

3.3部署逻辑卷

常用的LVM部署命令

示例:

恢复快照,在虚拟机中添加3块新硬盘,2块硬盘创建物理卷及卷组,划分出150MB空间的逻

辑卷并格式化挂载使用

首先创建物理卷,接着创建卷组/dev/VG1,然后查看信息

创建逻辑卷,查看信息

格式化

创建挂载目录

开机挂载

3.4 调整逻辑卷的大小

扩展卷组

[root@server ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
[root@server ~]# vgextend /dev/VG1 /dev/sdc
Volume group "VG1" successfully extended
[root@server ~]# vgdisplay /dev/VG1

逻辑卷的扩大与缩小

xfs文件系统类型的lvm的扩容

# 将lv1逻辑卷扩容到300MB
[root@server ~]# umount /dev/VG1/lv1
[root@server ~]# lvextend -L 300M /dev/VG1/lv1
Size of logical volume VG1/lv1 changed from 152.00 MiB (38 extents) to 300.00
MiB (75 extents).
Logical volume VG1/lv1 successfully resized.
[root@server ~]# lsblk
NAME      MAJ:MIN RM    SIZE   RO TYPE  MOUNTPOINTS
sda         8:0    0    20G    0  disk
├─VG1-lv1 253:2    0    300M   0  lvm   /LVM1
└─VG1-lv2 253:3    0    200M   0  lvm   /LVM2
[root@server ~]# lvdisplay
# 注意:使用 -L +100M增加了100M,如果增加到400M,使用-L 400M
[root@server ~]# lvextend -L +100M /dev/VG1/lv1
Size of logical volume VG1/lv1 changed from 300.00 MiB (75 extents) to 400.00
MiB (100 extents).
Logical volume VG1/lv1 successfully resized.
[root@server ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINTS
sda 8:0 0 20G 0 disk
├─VG1-lv1 253:2 0 400M 0 lvm /LVM1
└─VG1-lv2 253:3 0 200M 0 lvm /LVM2
# 注意:此时文件系统没有扩容
[root@server ~]# df -h | grep lv1
/dev/mapper/VG1-lv1    147M    8.9M    138M    7%    /LVM1
# 使用xfs_growfs文件系统扩容
[root@server ~]# xfs_growfs /dev/VG1/lv1
meta-data=/dev/mapper/VG1-lv1 isize=512    agcount=4, agsize=9728 blks
         =                    sectsz=512   attr=2, projid32bit=1
         =                    crc=1        finobt=1, sparse=1, rmapbt=0
         =                    reflink=1    bigtime=1 inobtcount=1
data     =                    bsize=4096   blocks=38912, imaxpct=25
         =                    sunit=0      swidth=0 blks
naming   =                    version 2    bsize=4096 ascii-ci=0, ftype=1
log      =                    internal log size=4096 blocks=1368, version=2
         =                    sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                extsz=4096   blocks=0, rtextents=0
data blocks changed from 38912 to 102400
[root@server ~]# df -h | grep lv1
/dev/map:per/VG1-lv1    395M    11M    384M   3%    /LVM1
[root@server ~]# mount /dev/VG1/lv1 /LVM1

对lv2逻辑卷缩容到200MB

# 相对于扩容,对逻辑卷缩容有风险,则最好提前备份
[root@server ~]# umount /dev/VG1/lv2
[root@server ~]# lvreduce -L 200M /dev/VG1/lv2
New size (50 extents) matches existing size (50 extents).
[root@server ~]# mount /dev/VG1/lv2 /LVM2
相关推荐
Somnus陳5 分钟前
软考架构师笔记-计算机系统组成-1
笔记·系统架构
是店小二呀15 分钟前
【Linux】Linux开发利器:make与Makefile自动化构建详解
linux·运维·自动化
BUG 4041 小时前
LINUX--shell
linux·运维·服务器
菜鸟小白:长岛icetea1 小时前
Linux零基础速成篇一(理论+实操)
linux·运维·服务器
深海的鲸同学 luvi1 小时前
【HarmonyOS NEXT】hdc环境变量配置
linux·windows·harmonyos
LuH11241 小时前
【论文阅读笔记】IC-Light
论文阅读·笔记
汤姆和佩琦1 小时前
2024-12-25-sklearn学习(20)无监督学习-双聚类 料峭春风吹酒醒,微冷,山头斜照却相迎。
学习·聚类·sklearn
是小菜呀!2 小时前
实验四 触发器
笔记
悲伤小伞2 小时前
C++_数据结构_详解二叉搜索树
c语言·数据结构·c++·笔记·算法
好学近乎知o2 小时前
正则表达式(学习Django过程中可能涉及的)
学习·正则表达式·django