存储管理
基本分区
^流程: 分区、格式化(文件系统)、挂载。
1.查看磁盘信息
# lsblk
2.创建分区
创建
# disk /dev/sdb
1.n //创建新分区
2.p //主分区
3.1 //选择1号分区
4.回车 //确定起始扇区
5.+size //结束大小
6.w //保存分区设置
7.d //删除
查看分区信息
# fdisk -l /dev/sdb //查看分区信息
# partprobe /dev/sdb //在有缓存的时候,刷新磁盘分区表。
3.格式化(创建文件系统)
# mkfs.ext4 /dev/sdb1
^注: centos7 默认使用 xfs文件系统
4.挂载
手动挂载 [重启失效]
1> 创建挂载点 mikdir /mnt/disk1(名字随意)
2> # mount -t ext4 /dev/sdb1 /mnt/disk1 //手动不推荐
3> # mount -t xfs /dev/sdb2 /mnt/disk2 //手动不推荐
自动挂载 [重启不失效]
- 查看分区 ID (UUID)
# blkid
- 使用UUID创建分区
1> # vim /etc/fstab
2> 将UUID复制到原有的UUID下面
UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" /mnt/disk1 auto defaults 0 0
UUID="4d26172c-7aff-4388-baa5-c6756c014d52" /mnt/disk2 ext4 defaults 0 0
3> 手动刷新 mount -a
注意/etc/fstab中有固定格式
磁盘 挂载点 文件系统 属性 备份 检测
/dev/vdb1 /mnt/disk1 xfs或者auto default 0 0
查看挂载信息
# df -hT
逻辑卷LVM
^目的: 管理磁盘的一种方式,性质与基本磁盘无异
^特点: 随意扩张大小,缩减大小,快照备份。
^流程: 格式化、挂载
名词
PV:物理卷(Physical volume)
VG:卷组(Volume Group)
LV:逻辑卷(Logical Volume)
PE:物理块(Physical Extent)
LE:逻辑块(Logical Extent)
创建LVM
1.pv
将物理磁盘转转换成物理卷 -pv
# pvcreate /dev/sdc
查看pv信息
# pvcan # pvs #pvdisplay
2.vg
^vgcreate: 将使用pvcreate建立的物理卷创建为一个完整的卷组
创建卷组 -vg
# vgcreate vg1 /dev/sdc
3.lv
# lvcreate -L 200M -n lv1 vg1
|------|---|---|----|------------- 指定大小
| |----|------------- 指定lv名
|--------------指定卷组
# 指定大小单位:M,G
# lvscan //查看lv
4.创建文件系统
mkfs.ext4 /dev/vg1/lv1
5.挂载
# 见基本分区挂载
VG管理
扩容
- 创建PV
#pvcreate /dev/sdd
- 扩展PV
# vgextend vg1 /dev/sdd
缩容
**注意!**数据迁移。
- 查看pv使用情况
pvs
- 数据迁移
# pvmove /dev/sdc
^注:此处迁移的是vg里的数据
# pvs
^注:再次查看空间已发生变化
- 缩减 vgreduce
# vgreduce vg1 /dev/sdd
^注:vgs 观察 pv数量变少了
LV扩容
1.扩容lv
1> 查看vg空间
# vgs
2> 扩容 lvextend
# lvextend -L +200M /dev/vg1/lv1
2.扩容FS
# resize2fs /dev/vg1/lv1
2.减小lv
1> 卸载
# umount /dev/vg1/lv1
2> 调整分区大小
# e2fsck -f /dev/vg1/lv1
# resize2fs -p /dev/vg1/lv1 100M
3> 减容
# lvreduce -L 200M /dev/vg1/lv1
4> 挂载
LVM快照snap
创建
创建快照卷((ext4)
# lvcreate -L 128M -s -n lv1-snap /dev/vg1/vg1
^注: 注意vg大小
查询快照卷大小
# lvs
挂载快照卷
1>创建目录
# mkdir /mnt/lv1-snap
2>mount -o ro /dev/vg1/lv1-snap /mnt/lv1-snap
查看Snapshot
1>查看两个卷挂载情况
# df -Th
2>查看两个卷的关系
# lvscan
3>查看文件内容
# ls /mnt.lv1
4>观察Snapshot
# lvs
^注:XFS不识别uuid,所以需要单独加上-o nouuid来忽略。挂载快照尽量使用ro方式,不易损坏数据。
# mount -o nouuid,ro /dev/vg1/lv1-snap /mnt/lv1-snap/
恢复
进入快照目录
# cd /mnt/lv1-snap
打包内容
# tar -cf snap.tar
卸载快照
# umount /mnt/lv1-snap
解压到原目录
# tar xf
交换分区swap
简介
作用
‘提升‘ 内存的容量,防止OOM(Out Of Memory)
swap大小
交换分区大小为内存的2倍
查看当前交换分区
# free -m
total used free shared buff/cache available
Mem: 489 140 145 4 202 304
Swap: 0 0 0
# swapon -s
增加交换分区
^注: 以LVM为例
准备分区
# fdisk /dev/sde //划分分区磁盘
格式化
# mkswap /dev/sde1
挂载
1>查询uuid
# blkid /dev/sde1
2>自动挂载
# vim /etc/fstab
3> 读取
# swapon -s
交换分区调优
swap优先级
swap分区的优先级(Priority)从高到低依次使用,最高32767,最低优先级是0
这样设置使得Linux并行的使用优先级相同的swap分区(Priority = 1的分区),这会大幅的提高对swap的读写。当这些分区满了,就会使用较低优先级swap分区(Priority = 0的分区)
设置
# /vim/etc/fstab
UUID="ea5b1c77-e540-463c-9644-0d75450f8b4c" swap swap defaults,pri=1 0 0 ↑注意
UUID="ea5b1c77-e540-465c-9644-0d75457f8b45" swap swap defaults,pri=1 0 0↑ ↑注意
# swapon -a
# swapon -s
文件系统详解
EXT3/4文件系统
类型
索引index文件系统
存储结构
磁盘>分区>文件系统>块组>索引目录>数据块
名词
superblock
#记录此文件系统的整体信息。包括inode/block的总量,使用量,剩余量,以及文件系统的格式等等。
inode
#记录文件的属性(文件的元数据metadata),一个文件占用一个inode,同时记录此文件数据所在的block numbber。inode大小 为 128 bytes
block
# 实际存储文件的内容,若文件较大,会占用多个block。block大小 为 1, 2, 4K
查看方式
- ext4文件系统
1>通过 dumpefs查看
# dumpe2fs /dev/vg1/lv1
# dumpe2fs /mnt/lv2 |les
2>通过tunfs查看
# tune2fs -l /dev/sda3
- xfs文件系统
# xfs_growfs /dev/vg1/lv1
# xfs_info /dev/vg1/lv1
文件链接
软连接
^注: 软连接是一个新文件,像快捷方式。可以对文件和目录做软连接,软连接记录的是源文件的绝对路径。软连接失去不可用。
创建方式
# ln -s /file1 /home/file11
硬链接
^注: 1.硬链接只对文件做,不能对目录做。2.硬链接只能在同分区做。3.硬链接不占block只是复制了inode。
# ln /file1 /home/file11
RAID
raid:廉价磁盘冗余阵列
作用
容错,提升读写速度。
raid0 条带集 2+100% 读写速率快,不容错
raid1 镜像集 2 50%读写速率一般,容错。
raid5 带奇偶校检条带集 3+(n-1)/n 读写快,容错,允许坏一块
raid6 带奇偶校验条带集双校验 4+ (n-2)/n 读写快,容错,允许坏两块
raid10 RAID1的安全+RAID0的高速 4 50% 读写速率快,容错
raid50 RAID5的安全+RAID0的高速 6 (n-2)/n 读写速率快,容错
raid60 RAID6的安全+RAID0的高速 8 (n-4)/n 读写速率快,容错
实现方式
硬RAID: 需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。
软RAID: 通过操作系统实现,比如Windows、Linux
附表1
功能 | 物理卷管理 | 卷组管理 | 逻辑卷管理 |
---|---|---|---|
Scan 扫描 | pvscan | vgscan | lvsacan |
Crerate 建立 | pvcreate | vgcreate | lvcreate |
Display 显示 | pvdisplay | vgdisplay | lvdispaly |
Remove 删除 | pvremove | vgremove | lvremove |
Extend 扩展 | vgextend | lvextend | |
Reduce 减少 | vgreduce | lvreduce |
附表2
功能 | 命令 |
---|---|
查看磁盘信息 | lsblk |
查看分区 ID (UUID) | blkid |
查看挂载信息 | df -hT |