零基础学习Linux系统存储管理记录
文件系统
常见文件系统类型
−EXT3,第3代扩展(Extended)文件系统
−EXT4,第4代扩展(Extended)文件系统
−XFS,高性能日志文件系统
−SWAP,交换文件系统
EXT3/EXT4
类型:
索引(index)文件系统
说明:
inode:
记录文件的属性(文件的元数据metadta)
一个文件占用一个inode,同时记录文件数据所在的block number
inode大小为128byte
block:
存储文件的实际数据
实际存储文件的内容,若文件较大,会占用多个block
block大小默认为4k
superblock:
block和inode的总量
未使用与已使用的inode/block数量
Ext3/Ext4 文件系统基本结构
node table: 存储文件的元数据(文件权限,时间戳,指向 block 的指针等信息)
data block: 存储文件的实际数据
基本分区
磁盘简介
类型:
机械
固态
接口:
SAS
SATA
厂商:
西部数据
希捷
三星、日立、金士顿
命名:
RHEL/CentOS7:
IDE(并行):
/dev/hda
h:代表并行口
d:代表磁盘
a:代表第一块
SATA(串行):
/dev/sda
/dev:设备文件目录
sda:是一个文件
s:代表是串口
d:代表是磁盘
a:代表是第一块
分区规则:
MBR:
MBR支持最大的磁盘容量小于2TB, 设计是分配4个分区
如果希望超过4个分区,就需要放弃主分区,改为扩展分区和逻辑分区
GPT:
全局唯一标识分区表是指全局唯一标识磁盘分区表格式
GPT支持大于2TB的磁盘,支持128个分区
管理磁盘
管理磁盘流程三部曲
1.分区(BMR或GPT)
2.格式化/文件系统Filesystem
3.挂载mount
查看磁盘信息
方法一:
使用ll命令进行查看
[vbird2@study ~]$ ll /dev/sd*
brw-rw----. 1 root disk 8, 0 11月 16 15:15 /dev/sda
brw-rw----. 1 root disk 8, 1 11月 16 15:15 /dev/sda1
brw-rw----. 1 root disk 8, 2 11月 16 15:15 /dev/sda2
brw-rw----. 1 root disk 8, 3 11月 16 15:15 /dev/sda3
brw-rw----. 1 root disk 8, 16 11月 16 15:15 /dev/sdb
brw-rw----. 1 root disk 8, 32 11月 16 15:15 /dev/sdc
brw-rw----. 1 root disk 8, 48 11月 16 15:15 /dev/sdd
方法二:
使用lsblk命令
[vbird2@study ~]$ lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 28G 0 part
├─centos-root 253:0 0 10G 0 lvm /
├─centos-swap 253:1 0 1G 0 lvm [SWAP]
└─centos-home 253:2 0 5G 0 lvm /home
sdb 8:16 0 10G 0 disk
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4.3G 0 rom
创建分区
1.启动分区工具
语法:fdisk 磁盘路径
[root@study ~]# fdisk /dev/sdb
2.进入会话模式:
提示1:命令(输入 m 获取帮助):
操作:输入n回车
说明:欢迎界面,输入帮助指令或者操作指令
提示2:Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p):
操作:输入p回车
说明:请选择主分区,或者扩展分区
提示3:分区号 (1-4,默认 1):
操作:输入1回车
说明:选择分区号
提示4:起始 扇区 (2048-20971519,默认为 2048):
操作:直接回车
说明:选择磁盘的开始扇区
提示5:将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):
操作:输入分区大小“+2G”后回车,实际环境根据磁盘划分,如4T磁盘,可以500G一个分区
说明:选择磁盘分区结束的扇区,即分区大小
提示6:分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):
操作:输入w回车
说明:保存分区信息
提示7:The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@study ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x29227daa 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-20971519,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-20971519,默认为 20971519):+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@study ~]#
3.刷新分区表:
语法:
partprobe 磁盘路径
[root@study ~]# partprobe /dev/sdb
4.查看分区结果
方法一:
语法:fdisk -l 磁盘路径
[root@study ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:10.7 GB, 10737418240 字节,20971520 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x29227daa
设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
方法二:
语法:lsblk
[root@study ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sda 8:0 0 64G 0 disk
├─sda1 8:1 0 2M 0 part
├─sda2 8:2 0 1G 0 part /boot
└─sda3 8:3 0 28G 0 part
├─centos-root 253:0 0 10G 0 lvm /
├─centos-swap 253:1 0 1G 0 lvm [SWAP]
└─centos-home 253:2 0 5G 0 lvm /home
sdb 8:16 0 10G 0 disk
└─sdb1 8:17 0 2G 0 part
sdc 8:32 0 10G 0 disk
sdd 8:48 0 10G 0 disk
sr0 11:0 1 4.3G 0 rom
创建文件系统
mkfs命令功能是用于对设备进行格式化文件系统操作。
语法格式: mkfs [参数] 设备名
参数:
-V 详细显示模式
-t 给定文件系统的型式
-c 检查该设备是否有损坏
[root@study ~]# mkfs -V -t ext4 /dev/sdb1
mkfs,来自 util-linux 2.23.2
mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
挂载mount
手动挂载:
1.创建挂载点,一个分区一个挂载点,
创建挂载点就相当于创建一个目录,相关语法如下
语法格式: mkdir /mnt/挂载点名称
2.进行挂载
mount命令的功能是用于把文件系统挂载到目录,文件系统指的是被格式化过的硬盘或分区设备,
进行挂载操作后,用户便可以在挂载目录中使用硬盘资源了。
语法格式:mount [参数] [设备] [挂载点]
参数:
-t 指定挂载类型
-l 显示已加载的文件系统列表
-h 显示帮助信息并退出
-V 显示程序版本
-n 加载没有写入文件“/etc/mtab”中的文件系统
-r 将文件系统加载为只读模式
-a 加载文件“/etc/fstab”中描述的所有文件系统
# 创建挂载点
[root@study ~]# mkdir /mnt/disk1
# 进行挂载
[root@study ~]# mount -t ext4 /dev/sdb1 /mnt/disk1
查看挂载信息
方法一:
df命令显示的磁盘使用量情况含可用、已有及使用率等信息,默认单位为Kb,建议使用-h参数进行单位换算,
语法格式: df [参数] [对象磁盘/分区]
参数:
a 显示所有系统文件
-B <块大小> 指定显示时的块大小
-h 以容易阅读的方式显示
-H 以1000字节为换算单位来显示
-i 显示索引字节信息
-k 指定块大小为1KB
-l 只显示本地文件系统
-t <文件系统类型> 只显示指定类型的文件系统
-T 输出时显示文件系统类型
[root@study ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 10G 3.9G 6.2G 39% /
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 13M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 5.0G 37M 5.0G 1% /home
tmpfs tmpfs 781M 12K 781M 1% /run/user/42
tmpfs tmpfs 781M 0 781M 0% /run/user/1000
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /mnt/disk1
逻辑卷LVM
逻辑卷管理器(LogicalVolumeManager)本质上是一个虚拟设备驱动,是在内核中块设备和物理设备之间添加的一个新的抽象层次。
它可以将几块磁盘(物理卷,PhysicalVolume)组合起来形成一个存储池或者卷组(VolumeGroup)。
LVM可以每次从卷组中划分出不同大小的逻辑卷(LogicalVolume)创建新的逻辑设备。
底层的原始的磁盘不再由内核直接控制,而由LVM层来控制。
LVM逻辑设备不受物理约束的限制,逻辑卷不必是连续的空间,它可以跨越许多物理卷,并且可以在任何时候任意的调整大小。
相比物理磁盘来说,更易于磁盘空间的管理。
基本术语
物理存储介质:
系统的物理存储设备:磁盘,如:/dev/hda、/dev/sda等,是存储系统最底层的存储单元。
物理卷(PV):
指磁盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,
但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
卷组(VG):
类似于非LVM系统中的物理磁盘,其由一个或多个物理卷PV组成。
可以在卷组上创建一个或多个LV(逻辑卷)。
逻辑卷(LV):
类似于非LVM系统中的磁盘分区,逻辑卷建立在卷组VG之上。
在逻辑卷LV之上可以建立文件系统(比如/home或者/usr等)。
创建LVM
1.将物理磁盘转换为物理卷PV
pvcreate命令的功能是用于创建物理卷设备。
LVM逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中pvcreate命令的工作属于第一个环节——创建物理卷设备。
语法格式:pvcreate [参数] 物理磁盘目录
参数:
-f 强制创建物理卷,不需要用户确认
-u 指定设备的UUID
-y 所有的问题都回答yes
[root@study ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created.
2.创建卷组
vgcreate命令的功能是用于创建卷组设备。
LVM逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中vgcreate命令的工作属于第二个环节——创建卷组设备。
卷组,顾名思义是将多个物理卷组成一个整体,屏蔽了底层物理设备细节,让用户在后续的逻辑卷创建工作后无需再考虑具体的硬件设备信息。
语法格式:vgcreate 卷组名 物理卷目录
[root@study ~]# vgcreate vg1 /dev/sdc
Volume group "vg1" successfully created
3.lvcreate命令的功能是用于创建逻辑卷设备。
LVM逻辑卷管理器技术由物理卷、卷组和逻辑卷组成,其中lvcreate命令的工作属于最后一个环节——创建逻辑卷设备。
设定逻辑卷容量可以使用-L参数直接写具体值,亦可以写-l参数指定PE个数,每个PE大小默认为4M,因此-L 400M和-l 100的效力是等价的。
语法格式:lvcreate -L 容量大小 -n 逻辑卷名称 卷组名称
# 在已有的卷组中(vg1)创建一个逻辑卷(lv1),大小为4G
[root@study ~]# lvcreate -L 4G -n lv1 vg1
Logical volume "lv1" created.
创建文件系统并挂载
格式化
[root@study ~]# mkfs -V -t ext4 /dev/vg1/lv1
mkfs,来自 util-linux 2.23.2
mkfs.ext4 /dev/vg1/lv1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
262144 inodes, 1048576 blocks
52428 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=1073741824
32 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks:
32768, 98304, 163840, 229376, 294912, 819200, 884736
Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (32768 blocks): 完成
Writing superblocks and filesystem accounting information: 完成
创建挂载点并挂载
[root@study ~]# mkdir /mnt/lv1
[root@study ~]# mount -t ext4 /dev/vg1/lv1 /mnt/lv1
查看挂载信息
[root@study ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/centos-root xfs 10G 3.9G 6.2G 39% /
devtmpfs devtmpfs 3.8G 0 3.8G 0% /dev
tmpfs tmpfs 3.9G 0 3.9G 0% /dev/shm
tmpfs tmpfs 3.9G 13M 3.8G 1% /run
tmpfs tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
/dev/sda2 xfs 1014M 179M 836M 18% /boot
/dev/mapper/centos-home xfs 5.0G 37M 5.0G 1% /home
tmpfs tmpfs 781M 12K 781M 1% /run/user/42
tmpfs tmpfs 781M 0 781M 0% /run/user/1000
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /mnt/disk1
/dev/mapper/vg1-lv1 ext4 3.9G 16M 3.6G 1% /mnt/lv1
卷组(VG)扩容
vgextend命令是用于扩展卷组设备。LVM逻辑卷管理器技术具有灵活调整卷组与逻辑卷的特点,
卷组可以在创建时规定物理卷的数量,亦可以在后期使用vgextend命令进行扩展。
步骤:
步骤一:创建PV
语法格式:pvcreate 磁盘路径
步骤二:将创建好的PV扩容到指定的VG中
语法格式:vgextend vg名称 pv目录
# 创建PV
[root@study ~]# pvcreate /dev/sdd
Physical volume "/dev/sdd" successfully created.
# 将创建好的PV扩容到指定的vg1中
[root@study ~]# vgextend vg1 /dev/sdd
Volume group "vg1" successfully extended
逻辑卷(LV) 扩容
步骤一:
lvextend命令是用于扩展逻辑卷设备。
语法格式:lvestend -L 容量大小 逻辑卷名称
步骤二:
resize2fs命令用于同步文件系统容量到内核。
如对ext3、ext4、XFS等设备卷容量进行了调整,则需要使用resize2fs命令同步信息到系统内核。
语法格式:resize2fs [参数] 设备
参数:
-d 打开调试特性
-p 打印已完成的百分比进度条
-f 强制执行调整大小操作
-F 刷新文件系统设备的缓冲区
[root@study ~]# lvextend -L +6G /dev/vg1/lv1
Size of logical volume vg1/lv1 changed from 4.00 GiB (1024 extents) to 10.00 GiB (2560 extents).
Logical volume vg1/lv1 successfully resized.
[root@study mnt]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt/lv1; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 2
The filesystem on /dev/vg1/lv1 is now 2621440 blocks long.
查看卷组的信息
vgs命令的作用是可以报告显示关于卷组的信息。
通常一个分区或者一个硬盘就可以建立一个物理卷,将多个物理卷组合到一起,成为一个卷组。
语法格式:vgs [卷组名称]
# 查看全部的卷组信息
[root@study mnt]# vgs
VG #PV #LV #SN Attr VSize VFree
centos 1 3 0 wz--n- 27.94g 11.94g
vg1 2 1 0 wz--n- 19.99g 9.99g
# 查看vg1卷组的信息
[root@study mnt]# vgs vg1
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz--n- 19.99g 9.99g
查看逻辑卷的信息
lvs命令的作用是可以报告有关逻辑卷的信息。
逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是最终用户使用的逻辑设备。
逻辑卷相对于物理卷来说:可以将多个物理卷,合并为一个逻辑卷,这样一个分区的容量可以突破物理硬盘的限制。
逻辑卷可以弹性的扩容和缩容,当我们不太确定一个应用将来所需的容量,可以先分配少一点的空间,
这样可以随着业务发展,按需扩容,避免一次性分配过大磁盘空间导致的资源浪费。
另外逻辑卷支持快照功能,可在对系统进行关键操作前设置还原点,避免操作失误导致的数据损坏。
语法格式:lvs [参数] [卷组名称]
参数:
-- -all 包括所有有关内部逻辑卷的输出信息
-- -units<输出单位> 所有尺寸都在输出这些单位:h、H、b、B、s、S、k、K、m、M、g、G、t、T、p、P、e、E
-- -aligned 使用带--separator分隔符对齐输出列
-- -nosuffix 在输出大小上后缀
-- -rows 输出列作为行
-- -segments 使用默认列强调段信息
-- -nameprefixes 添加一个“LVM2_”前缀加上字段名输出
-- -unbuffered 立即产生没有正确排序或对齐列的输出
-- -noheadings 标题行,这通常是输出的第一行
# 查看有关逻辑卷的信息
[root@study mnt]# lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
home centos -wi-ao---- 5.00g
root centos -wi-ao---- 10.00g
swap centos -wi-ao---- 1.00g
lv1 vg1 -wi-ao---- 10.00g
# 输出所有有关内部逻辑卷的信息
[root@study mnt]# lvs --all vg1
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 10.00g
# 输出大小上后缀
[root@study mnt]# lvs --units G vg1
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
lv1 vg1 -wi-ao---- 10.74G
交换分区管理 Swap
简介
作用:提升内存容量,防止内存溢出
swap大小:
推荐:设置交换分区大小为内存的2倍
生产:
大于4G而小于16G内存的系统,最小需要4GB交换空间
大于16GB而小于64GB内存的系统,最小需要8GB的交换空间
大于64GB而小于256GB内存的系统,最小需要16GB的交换空间
查看当前的交换分区
free命令的功能是显示系统内存使用量情况,包含物理和交换内存的总量、使用量和空闲量情况。
语法格式:free [参数]
参数:
-b 以Byte显示内存使用情况
-k 以kb为单位显示内存使用情况
-m 以mb为单位显示内存使用情况
-g 以gb为单位显示内存使用情况
-s 持续显示内存
-t 显示内存使用总合
-h 以易读的单位显示内存使用情况
# 以MB位单位显示内存使用量信息
[root@study ~]# free -m
total used free shared buff/cache available
Mem: 7803 511 6814 14 477 6945
Swap: 1023 0 1023
增加交换分区
可以是基本分区,LVM,File
- 划分分区
[root@study ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):82
已将分区“Linux”的类型更改为“Linux swap / Solaris”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@study ~]# partprobe /dev/sdb
[root@study ~]# ll /dev/sdb*
brw-rw----. 1 root disk 8, 16 11月 17 13:52 /dev/sdb
brw-rw----. 1 root disk 8, 17 11月 17 13:52 /dev/sdb1
- 格式化
[root@study ~]# mkswap /dev/sdb1
mkswap: /dev/sdb1: warning: wiping old ext4 signature.
正在设置交换空间版本 1,大小 = 2097148 KiB
无标签,UUID=645173e3-6f8c-4dfe-a632-d49e6280f28f
3.挂载
[root@study ~]# swapon /dev/sdb1
- 验证
[root@study ~]# free -h
total used free shared buff/cache available
Mem: 7.6G 506M 6.7G 14M 478M 6.8G
Swap: 3.0G 0B 3.0G
文件链接
符号链接
符号链接(软链接)是一类特殊的文件, 其包含有一条以绝对路径或者相对路径的形式指向其它文件或者目录的引用。
符号链接的操作是透明的:对符号链接文件进行读写的程序会表现得直接对目标文件进行操作。
某些需要特别处理符号链接的程序(如备份程序)可能会识别并直接对其进行操作。
一个符号链接文件仅包含有一个文本字符串,其被操作系统解释为一条指向另一个文件或者目录的路径。
它是一个独立文件,其存在并不依赖于目标文件。
如果删除一个符号链接,它指向的目标文件不受影响。
如果目标文件被移动、重命名或者删除,任何指向它的符号链接仍然存在,但是它们将会指向一个不复存在的文件,这种情况被有时被称为被遗弃。
创建符号链接的语法格式:ln [参数] 源文件 目标文件
说明:创建符号链接时必须加上参数-s,如果没有参数-s就是创建硬链接
参数:
b 为每个已存在的目标文件创建备份文件
-d 此选项允许“root”用户建立目录的硬链接
-f 强制创建链接,即使目标文件已经存在
-n 把指向目录的符号链接视为一个普通文件
-i 交互模式,若目标文件已经存在,则提示用户确认进行覆盖
-s 对源文件建立符号链接,而非硬链接
-v 详细信息模式,输出指令的详细执行过程
# 文件文件test.txt创建符号链接test_link
[root@study ~]# ln -s test.txt /tmp/test_link
硬链接
硬链接(hard link,也称链接)就是一个文件的一个或多个文件名。
一个文件有几个文件名(用ln命令实现多个文件名),我们就说该文件的链接数为几。
由定义可知,此链接数可以是1,这表明该文件只有一个文件名。
总之,硬链接就是让多个不在或者同在一个目录下的文件名,
同时能够修改同一个文件,其中一个修改后,所有与其有硬链接的文件都一起修改了。
但是,硬链接只能针对文件,不能针对目录做,硬链接只能在同分区做
[root@study ~]# ln file file-h1
[root@study ~]# ll
总用量 8
-rw-------. 1 root root 2172 11月 12 15:05 anaconda-ks.cfg
-rw-r--r--. 2 root root 0 11月 17 14:27 file
-rw-r--r--. 2 root root 0 11月 17 14:27 file-h1
-rw-r--r--. 1 root root 2220 11月 12 15:06 initial-setup-ks.cfg
-rw-r--r--. 1 root root 0 11月 17 14:16 test.txt
磁盘阵列(RAID)
简介
磁盘阵列是由很多块独立的磁盘,组合成一个容量巨大的磁盘组,利用个别磁盘提供数据所产生加成效果提升整个磁盘系统效能。
利用这项技术,将数据切割成许多区段,分别存放在各个硬盘上。
作用
1.减少磁盘的机械寻道时间,提高了数据存取速度。
2.容错
实现方法
软件RAID
使用基于主机的软件提供RAID 功能,是在操作系统级上实现的,与硬件RAID相比,软件RAID具有成本低廉和简单直观的优点。
硬件RAID
基于主机的硬件RAID和基于阵列的硬件RAID。
基于主机的硬件RAID通常是将专用RAID控制器安装在主机上,并且所有磁盘驱动器都与主机相连,有的制造商还将RAID控制器集成到主板上。
管理RAID磁盘阵列组
mdadm命令来用于管理RAID磁盘阵列组。
作为Linux系统下软RAID设备的管理神器,mdadm命令可以进行创建、调整、监控、删除等全套管理操作。
创建RAID
步骤一:查看mdadm软件是否存在,不存在使用yum进行安装
步骤二:使用mdadm进行创建RAID
语法格式:mdadm [参数] 设备名
参数:
-D 显示RAID设备的详细信息
-A 加入一个以前定义的RAID
-B 创建一个没有超级块的RAID设备
-F 选项监控模式
-G 更改RAID设备的大小或形态
-I 添加设备到RAID中,或从RAID中删除设备
-z 组建RAID1、RAID4、RAID5、RAID6后从每个RAID成员获取的空间容量
-s 扫描配置文件或/proc/mdstat以搜寻丢失的信息
-C 把RAID信息写入每个成员超级块中
-v 显示RAID创建过程中的详细信息
-B 不把RAID信息写入每个成员的超级块中
-l 指定RAID的级别
-n 指定RAID中活动设备的数目
-f 把RAID成员列为有问题,以便移除该成员
-r 把RAID成员移出RAID设备
-a 向RAID设备中添加一个成员
--re-add 把最近移除的RAID成员重新添加到RAID设备中
-E 查看RAID成员详细信息
-c 创建一个RAID设备时默认为512kb
-R 开始部分组装RAID
-S 停用RAID设备,释放所有资源
-x 指定初始RAID设备的备用成员的数量
--zero-superblock 如果RAID设备包含一个有效的超级块,该块使用零覆盖
# 使用四块硬盘设备创建一个指定名称的,级别为RAID10的磁盘阵列组
[root@study ~]# mdadm -Cv /dev/md0 -n 4 -l 10 /dev/sde /dev/sdf /dev/sdg /dev/sdh
mdadm: layout defaults to n2
mdadm: layout defaults to n2
mdadm: chunk size defaults to 512K
mdadm: size set to 4189184K
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
查看指定RAID磁盘阵列组设备的简要信息
# 查看指定RAID磁盘阵列组设备的简要信息
[root@study ~]# mdadm -Q /dev/md0
/dev/md0: 7.99GiB raid10 4 devices, 0 spares. Use mdadm --detail for more detail.
查看指定RAID磁盘整列组设备的详细信息
# 查看指定RAID磁盘整列组设备的详细信息
[root@study ~]# mdadm -D /dev/md0
/dev/md0:
Version : 1.2
Creation Time : Thu Nov 17 16:28:42 2022
Raid Level : raid10
Array Size : 8378368 (7.99 GiB 8.58 GB)
Used Dev Size : 4189184 (4.00 GiB 4.29 GB)
Raid Devices : 4
Total Devices : 4
Persistence : Superblock is persistent
Update Time : Thu Nov 17 16:29:02 2022
State : clean
Active Devices : 4
Working Devices : 4
Failed Devices : 0
Spare Devices : 0
Layout : near=2
Chunk Size : 512K
Consistency Policy : resync
Name : study.centos.vbird:0 (local to host study.centos.vbird)
UUID : 80507ff8:2cb45e0e:b5a3d639:d60db83b
Events : 17
Number Major Minor RaidDevice State
0 8 64 0 active sync set-A /dev/sde
1 8 80 1 active sync set-B /dev/sdf
2 8 96 2 active sync set-A /dev/sdg
3 8 112 3 active sync set-B /dev/sdh
[root@study ~]#
将指定的硬盘从RAID磁盘阵列组中停止
# 把RAID成员列为有问题,以便移除该成员
[root@study ~]# mdadm /dev/md0 -f /dev/sde
mdadm: set /dev/sde faulty in /dev/md0
# 把RAID成员移出RAID设备
[root@study ~]# mdadm /dev/md0 -r /dev/sde
mdadm: hot removed /dev/sde from /dev/md0
将指定的硬盘添加至RAID磁盘阵列组中
[root@study ~]# mdadm /dev/md0 -a /dev/sdi
mdadm: added /dev/sdi
彻底停用一个RAID磁盘阵列组
[root@study ~]# mdadm --stop /dev/md0
mdadm: stopped /dev/md0