关于 Linux 存储管理深入理解
关于 Linux 存储管理深入理解
物理硬盘 ==> 分区规划 ==> 格式化 ==> 读/写文档
分区
MBR 不大于2TB
传统MBR分区模式
1~4个主分区 //理论上
0~3个主分区+1个扩展分区(n个逻辑分区) //实际上
注意事项
– MBR分区表只能记录4个主分区,编号范围1-4
– 当有必要使用4个以上分区时,需要建立扩展分区(占主分区编号),扩展分区最多只能有1个
– 扩展分区作为一个中间性质的容器,从其中再划分出的分区空间即为逻辑分区
格式化
赋予文件系统
数据在空间中,存储的规则,排列的方式
NTFS(windows 默认)
EXT4 RHEL6默认
XFS RHEL7默认
SWAP 虚拟内存
目录结构
/ 根目录 :存放所有数据(Linux系统的起点)
/dev 设备文件
磁盘表示方式
hd,表示IDE设备
sd,表示SCSI设备
硬盘分区管理
磁道:track 每个磁道 63 个扇区
扇区:sector 每个扇区 512 个字节
磁头:head
柱面:cylinder 柱面大小=磁道容量盘面数量
硬盘总容量=柱面数磁头数单磁道扇区数单个容量扇区大小(一般初始为512字节)
MBR/msdos 分区模式
1~4个主分区,或者0~3个主分区+1个扩展分区(n个逻辑分区)
最大支持容量位2.2TB的磁盘
扩展分区不能格式化
一,查看但前有那些磁盘
[root@localhost ~]# ls /dev/vd* /dev/vda /dev/vda1 /dev/vdb [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 10G 0 disk └─vda1 253:1 0 10G 0 part / vdb 253:16 0 10G 0 disk
二.如何划分分区
使用fdisk分区工具(之支持MBR)
查看分区
fdisk -l
例:
[root@localhost ~]# fdisk -l /dev/vdb 磁盘 /dev/vdb:10.7 GB, 10737418240 字节,20971520 个扇区 Units = 扇区 of 1 * 512 = 512 bytes 扇区大小(逻辑/物理):512 字节 / 512 字节 I/O 大小(最小/最佳):512 字节 / 512 字节
修改硬盘的分区表
fdisk 硬盘设备
例:
[root@localhost ~]# fdisk /dev/vdb 欢迎使用 fdisk (util-linux 2.23.2)。 更改将停留在内存中,直到您决定将更改写入磁盘。 使用写入命令前请三思。 Device does not contain a recognized partition table 使用磁盘标识符 0xada4991d 创建新的 DOS 磁盘标签。 命令(输入 m 获取帮助):
常用交互指令
m 列出指令帮助
p 查看现在的分区表
n 新建分区
d 删除分区
q 放弃更改并退出
w 保存更改并退出
例:
[root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 10G 0 disk └─vda1 253:1 0 10G 0 part / vdb 253:16 0 10G 0 disk ├─vdb1 253:17 0 1G 0 part /part1 ├─vdb2 253:18 0 2G 0 part /part2 └─vdb3 253:19 0 3G 0 part /part3
三.格式化分区
常用的格式化工具
mkfs 工具集
mkfs.文件系统 分区设备路径
mkfs.ext3 分区设备路径
mkfs.ext4 分区设备路径
mkfs.xfs 分区设备路径
mkfs.vfat -F 32 分区设备路径
例:
[root@localhost ~]# mkfs. mkfs.btrfs mkfs.ext2 mkfs.ext4 mkfs.minix mkfs.vfat mkfs.cramfs mkfs.ext3 mkfs.fat mkfs.msdos mkfs.xfs(linux7有)
四.挂载使用
[root@localhost ~]# mkdir /part1 [root@localhost ~]# mkdir /part2 [root@localhost ~]# mkdir /part3 [root@localhost ~]# mount /dev/vdb1 /part1 [root@localhost ~]# mount /dev/vdb2 /part2 [root@localhost ~]# mount /dev/vdb3 /part3
五.查看挂载使用情况
[root@localhost ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 10G 3.1G 6.9G 31% / devtmpfs 906M 0 906M 0% /dev tmpfs 921M 80K 921M 1% /dev/shm tmpfs 921M 17M 904M 2% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup 172.25.254.254:/home/guests 10G 3.2G 6.9G 32% /home/guests /dev/vdb1 976M 1.3M 908M 1% /part1 /dev/vdb2 2.0G 6.0M 1.8G 1% /part2 /dev/vdb3 3.0G 33M 3.0G 2% /part3
扩展:
缓解根分区压力
可以将新建一个分区vdb5
mount /dev/vdb5 /mnt
cp -r /home/ /mnt/
rm -rf /home/
umount /mnt/
mount /dev/vdb5 /home
六.划分扩展分区
# fdisk /dev/vdb p 查看分区表 n 创建新的分区 ----->回车---->起始回车----->结束回车 将所有空间给扩展分区 p 查看分区表 n 创建新的分区----->起始回车------>结束+1G n 创建新的分区----->起始回车------>结束+1G p 查看分区表 w 保存并退出 [root@localhost ~]# ls /dev/vdb* /dev/vdb /dev/vdb1 /dev/vdb2 /dev/vdb3 [root@localhost ~]# partprobe #刷新分区表 [root@localhost ~]# ls /dev/vdb* /dev/vdb /dev/vdb1 /dev/vdb2 /dev/vdb3 /dev/vdb4 /dev/vdb5 /dev/vdb6 [root@localhost ~]# lsblk NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT vda 253:0 0 10G 0 disk └─vda1 253:1 0 10G 0 part / vdb 253:16 0 10G 0 disk ├─vdb1 253:17 0 1G 0 part /part1 ├─vdb2 253:18 0 2G 0 part /part2 ├─vdb3 253:19 0 3G 0 part /part3 ├─vdb4 253:20 0 1K 0 part ├─vdb5 253:21 0 1G 0 part └─vdb6 253:22 0 1G 0 part
开机自动挂载 /etc/fstab
设备路径 挂载点 类型 参数 备份标记 检测顺序 /dev/vdb3 /part3 xfs defaults 0 0 /dev/vdb2 /part2 ext4 defaults 0 0 [root@server0 ~]# vi /etc/fstab [root@server0 ~]# tail -2 /etc/fstab /dev/vdb3 /part3 xfs defaults 0 0 /dev/vdb2 /part2 ext4 defaults 0 0
验证:
mount -a
检测/etc/fstab开机自动挂载配置文件,格式是否正确
检测/etc/fstab中,书写完成,但当前没有挂载的设备,进行挂载
df -h
补充: blkid 文件目录 #查看分区UUID
总结
1.lsblk 查看硬盘信息
2.fdisk 分区
3.partprobe 刷新 新的分区表
4.mkfs.xfs 格式化分区
5.mount 挂载测试
6./etc/fstab 开机自动挂载
练习: 划分/dev/vdc[1-3]主分区10G,划分扩展分区,在划分两个逻辑分区10G
fdisk /dev/vdc
p 查看分区表 n 创建新的分区 ------>回车--->回车--->回车--->在last结束时+10G n 创建新的分区 ----->回车---->起始回车----->结束回车 将所有空间给扩展分区 p 查看分区表 n 创建新的分区----->起始回车------>结束+10G p 查看分区表 w 保存并退出
LVM逻辑卷
1.管理分散的空间
2.逻辑卷动态的扩大与缩减
LVM工作方式
零散空间存储 ---> 整合的虚拟磁盘 ---> 虚拟的分区
物理卷PV 卷组VG 逻辑卷LV
首先将众多的物理卷组(PV)成卷组(VG),在从卷组中划分出逻辑卷(LV)
LVM管理工具集
scan 扫描
create 创建
display 显示
remove 删除
extends 扩展
一.创建物理卷与卷组
vgcreate 卷组名 空闲分区
lvcreate -L 大小 -n 名称 卷组名
[root@server0 ~]# vgcreate myvg /dev/vdc[1-2] Physical volume "/dev/vdc1" successfully created Physical volume "/dev/vdc2" successfully created [root@server0 ~]# pvs #显示物理卷基本信息 PV VG Fmt Attr PSize PFree /dev/vdc1 myvg lvm2 a-- 10.00g 10.00g /dev/vdc2 myvg lvm2 a-- 10.00g 10.00g [root@server0 ~]# vgs #显示卷组基本信息 VG #PV #LV #SN Attr VSize VFree myvg 2 0 0 wz--n- 19.99g 19.99g
二.创建逻辑卷(逻辑卷的大小不能超过卷组)
lvcreate -L 逻辑卷大小 - n 逻辑卷的名称 卷组名
[root@server0 ~]# lvcreate -L 16G -n mylv myvg Logical volume "mylv" created [root@server0 ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg 2 1 0 wz--n- 19.99g 3.99g [root@server0 ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert mylv myvg -wi-a----- 16.00g
三.使用逻辑卷
[root@server0 ~]# mkfs.ext4 /dev/myvg/mylv [root@server0 ~]# mkdir /lvm [root@server0 ~]# vim /etc/fstab ... /dev/myvg/mylv /lvm ext4 defaults 0 0 ... [root@server0 ~]# mount -a [root@server0 ~]# df -h
逻辑卷扩展(支持线上操作)
lvextend -L 新大小 /dev/卷组名/逻辑卷名
一.卷组有足够的剩余空间
1.直接扩展逻辑卷的空间
[root@server0 ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert mylv myvg -wi-a----- 16.00g [root@server0 ~]# lvextend -L 18G /dev/myvg/mylv Extending logical volume mylv to 18.00 GiB Logical volume mylv successfully resized [root@server0 ~]# lvs LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert mylv myvg -wi-ao---- 18.00g [root@server0 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 10G 3.1G 7.0G 31% / devtmpfs 906M 0 906M 0% /dev tmpfs 921M 80K 921M 1% /dev/shm tmpfs 921M 17M 904M 2% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/vdb3 3.0G 33M 3.0G 2% /part3 /dev/vdb2 2.0G 6.0M 1.8G 1% /part2 /dev/mapper/myvg-mylv 16G 45M 15G 1% /lvm 2.扩展文件系统的大小 扩展ext4文件系统:resize2fs /dev/myvg/mylv [root@server0 ~]# resize2fs /dev/myvg/mylv resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/myvg/mylv is mounted on /lvm; on-line resizing required old_desc_blocks = 2, new_desc_blocks = 3 The filesystem on /dev/myvg/mylv is now 4718592 blocks long. [root@server0 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 10G 3.1G 7.0G 31% / devtmpfs 906M 0 906M 0% /dev tmpfs 921M 80K 921M 1% /dev/shm tmpfs 921M 17M 904M 2% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/vdb3 3.0G 33M 3.0G 2% /part3 /dev/vdb2 2.0G 6.0M 1.8G 1% /part2 /dev/mapper/myvg-mylv 18G 44M 17G 1% /lvm 扩展xfs文件系统:xfs_growfs /dev/myvg/mylv
二.卷组没有剩余空间
vgextend 卷组名 空闲分区
[root@server0 ~]# vgs VG #PV #LV #SN Attr VSize VFree myvg 2 1 0 wz--n- 19.99g 1.99g
1.先扩展卷组
[root@server0 ~]# vgextend myvg /dev/vdc3 Physical volume "/dev/vdc3" successfully created Volume group "myvg" successfully extended
2.扩展逻辑卷的空间
3.扩展文件系统大小
逻辑卷缩减 (运维几乎不用)
先缩减文件系统 在缩减空间
[root@server0 ~]# resize2fs /dev/myvg/mylv 10G resize2fs 1.42.9 (28-Dec-2013) Filesystem at /dev/myvg/mylv is mounted on /lvm; on-line resizing required resize2fs: On-line shrinking not supported [root@server0 ~]# umount /lvm [root@server0 ~]# resize2fs /dev/myvg/mylv 10G resize2fs 1.42.9 (28-Dec-2013) 请先运行 'e2fsck -f /dev/myvg/mylv'. [root@server0 ~]# e2fsck -f /dev/myvg/mylv e2fsck 1.42.9 (28-Dec-2013) 第一步: 检查inode,块,和大小 第二步: 检查目录结构 第3步: 检查目录连接性 Pass 4: Checking reference counts 第5步: 检查簇概要信息 /dev/myvg/mylv: 11/1638400 files (0.0% non-contiguous), 146871/6553600 blocks [root@server0 ~]# resize2fs /dev/myvg/mylv 10G resize2fs 1.42.9 (28-Dec-2013) Resizing the filesystem on /dev/myvg/mylv to 2621440 (4k) blocks. The filesystem on /dev/myvg/mylv is now 2621440 blocks long. [root@server0 ~]# mount -a [root@server0 ~]# df -h 文件系统 容量 已用 可用 已用% 挂载点 /dev/vda1 10G 3.1G 7.0G 31% / devtmpfs 906M 0 906M 0% /dev tmpfs 921M 80K 921M 1% /dev/shm tmpfs 921M 17M 904M 2% /run tmpfs 921M 0 921M 0% /sys/fs/cgroup /dev/vdb3 3.0G 33M 3.0G 2% /part3 /dev/vdb2 2.0G 6.0M 1.8G 1% /part2 /dev/mapper/myvg-mylv 9.8G 37M 9.3G 1% /lvm
PE:卷组划分空间的单位,4M(默认)
创建卷组的时候设置PE大小
vgcreate -s PE大小 卷组名 空闲分区
lvcreate -l PE的个数 -n 逻辑卷名 卷组名
RHEL6 CE
请创建一个逻辑卷 大小位250M,名字为lvmtest (因为PE默认时4M 分区只会分给252M )
[root@server0 ~]# vgchange -s 1M myvg Volume group "myvg" successfully changed [root@server0 ~]# vgdisplay ... PE Size 1.00 MiB ... [root@server0 ~]# lvcreate -l 250 -n test myvg # 250个PE(1M) 或是 [root@server0 ~]# lvcreate -L 250M -n test myvg
管理交换空间
相当于虚拟内存
当物理内存不够用时,使用磁盘空间来模拟内存
在一定成都上缓解内存不足的问题
交换分区:以空闲分区充当的交换空间
[root@server0 ~]# mkswap /dev/vdc5 #格式化SWAP命令 正在设置交换空间版本 1,大小 = 10485756 KiB 无标签,UUID=7034ba6a-908d-49c3-b213-c75be9c94625 [root@server0 ~]# swapon /dev/vdc5 #启动交换空间 [root@server0 ~]# swapon -s #查看SWAP状态 文件名 类型 大小 已用 权限 /dev/vdc5 partition 10485756 0 -1 [root@server0 ~]# mkswap /dev/vdc6 [root@server0 ~]# swapon /dev/vdc6 [root@server0 ~]# swapon -s 文件名 类型 大小 已用 权限 /dev/vdc5 partition 10485756 0 -1 /dev/vdc6 partition 10485756 0 -2 [root@server0 ~]# swapoff /dev/vdc5 #停止交换空间 [root@server0 ~]# swapon -s 文件名 类型 大小 已用 权限 /dev/vdc6 partition 10485756 0 -1
开机自动挂载
[root@server0 ~]# vi /etc/fstab ... /dev/vdc5 swap swap defaults 0 0 ... [root@server0 ~]# swapon -a #专用于检测swap分区 [root@server0 ~]# swapon -s 文件名 类型 大小 已用 权限 /dev/vdc5 partition 10485756 0 -2 /dev/vdc6 partition 10485756 0 -1 使用UUID 完成开机自动挂载 blkid 文件目录 #查看设备UUID的信息 [root@server0 ~]# blkid /dev/vdc6 /dev/vdc6: UUID="85202124-a90a-4a7b-a2ce-4d2ba6b68d4b" TYPE="swap" [root@server0 ~]# vi /etc/fstab ... UUID="85202124-a90a-4a7b-a2ce-4d2ba6b68d4b" swap swap defaults 0 0 ... [root@server0 ~]# swapon -s #查看挂载情况 文件名 类型 大小 已用 权限 /dev/vdc5 partition 10485756 0 -1 [root@server0 ~]# swapon -a #挂载 [root@server0 ~]# swapon -s 文件名 类型 大小 已用 权限 /dev/vdc5 partition 10485756 0 -1 /dev/vdc6 partition 10485756 0 -2
RAID 磁盘阵列
廉价冗余磁盘阵列(Redundant Arrays of Inexpensive Disks)
通过硬件/软件技术,将多个较小/低速的磁盘整合成一个大磁盘
阵列的价值:提升I/O效率,硬件级别的数据冗余
不同RAID级别的功能,特性个不相同
RAID 0 ,条带模式(至少要两块磁盘)
同一个文档分散存放在不同磁盘
并行写入以提高效率
磁盘存储利用率:100%
缺点:没有可靠性
RAID 1 ,镜像模式(至少要两块磁盘)
一个文档复制成多份,分别写入不同磁盘
多份备份提高可靠性,效率无提升
磁盘存储利用率:<=50%
缺点:效率不高
RAID 5 ,高性价比模式(至少需要三块) #常用
相当于RAID 0 和RAID 1 的折中方案
需要至少一块磁盘的容量来存放校验数据
能够通过校验值和一部份数据推理出缺失的文件
一般买四块 多出的一块做热备份 有一个坏了顶替上 将坏掉的数据移交到其中
磁盘存储利用率:N-1/N
RAID 6 高性价比/可靠模式(一般银行用)
-相当于扩展的RAID5阵列,提供2份独立校验方案
-需要至少两块磁盘的容量来存放校验数据
磁盘存储利用率:N-2/N
RAID 0+1 (先做RAID 0 再作 1 )/RAID 1+0(先做RAID 1 再作 0)(至少四块)
至少要四块 RAID 0+1 底层两两先做RAID 0 然后两两结合 在作RAID 1
-整合RAID 0 ,RAID 1 的优势
-并行存取提高效率,镜像写入提高可靠性
磁盘存储利用率:<=50%
RAID阵列实现方式
硬RAID :由RAID控制卡管理阵列
-主板-->阵列卡-->磁盘-->操作系统-->数据
软RAID :由操作系统来管理阵列
-主板 -- > 磁盘 -- > 操作系统 -- > RAID软件 -- >数据