文章目录
6.Linux(6)磁盘管理和文件系统
前言
基础资源
CPU资源
内存资源
磁盘资源
I/O资源
网络资源
系统资源
文件打开数
文件描述符
socket
磁盘管理
磁盘简介
磁盘结构
物理结构
盘片
磁头
数据结构
扇区
磁道
柱面
硬盘储存容量=磁头数柱面数每道扇区数*每扇区字节数
磁盘接口类型:IDE,SATA,SCSI,SAS,光纤通道
MBR主引导记录
MBR位于磁盘第一个物理扇区处
MBR中包含硬盘的主引导程序和硬盘分区表
分区表有4个分区记录区,每个分区记录区占16个字节
Linux中将硬盘、 分区等设备均表示为文件:/dev/sda或sdb sd表示串口类型a,b表示第几块
磁盘分区结构
硬盘中的主分区数目只有4个
主分区和扩展分区的序号限制在1~4
扩展分区再分为逻辑分区
逻辑分区的序号始终从5开始
基本磁盘管理、分区
1)分区(MBR)
1) fdisk [磁盘设备] 查看或管理磁盘分区
2) 交互模式中的常用指令
n 增加一个新的分区
p 主分区
1,2,3,4 编号
e 次分区
d 删除一个分区
l 显示已知的分区类型,其中82为swap,83为Linux分区
m 显示帮助菜单
p 显示磁盘当前的分区表
q 不保存退出
w 保存退出
t 改变一个分区的系统号码
3) fdisk -l [磁盘设备] 查看磁盘分区信息
或 lsblk 查看磁盘分区信息
2)格式化磁盘,创建文件系统
mkfs.文件系统 磁盘设备
mkfs -t xfs /dev/sdb1或
mkfs.xfs /dev/sdb1 格式化磁盘sdb1
3)文件挂载磁盘
临时挂载
mount [选项] 设备 挂载点目录
mount -t 文件类型 设备 挂载点目录 挂载文件系统
mount -o loop ISO镜像 挂载点目录 挂载ISO镜像
umount 存储设备位置/挂载点目录 卸载已挂载的文件系统
永久挂载
1)blkid /dev/sdb1 查看sdb1的UUID
2)复制UUID
3)vim /etc/fstab 编辑文件系统列表
4)最后一行粘贴UUID /挂载目录 xfs 0 0
格式:
第1字段:设备名或UUID卷标名
第2字段:挂载点目录
第3字段:文件系统类型
第4字段:挂载参数(defaults,rw,ro,noexec)表示权限
第5字段:表示是否需要dump备份,0忽略,1备份
第6字段:在系统启动时的检查顺序,0不检查,1优先检查,2其次检查
5)保存退出
6)重启或mount -a 刷新挂载
查看挂载信息: df -hT
解挂载:umount 挂载点目录
umount -f 目录
若无法解挂载
fuser -cu 目录 查看占用进程
kill -9 pid(进程号) 杀死进程
SWAP 交换分区管理
简介
作用:为Linux系统建立交换分区:提升内存,防止内存溢出
swap大小:设置交换分区大小为内存的2倍
交换分区管理流程 swap
1)在基本分区里把分区系统号码改成82
2)格式化分区
3)swapon 分区 开启swap
-s 查看每个分区的swap状态信息
swapoff 分区 关闭swap
-a 所有
4)mkswap 分区 格式化swap分区
5)free -m 查看总的swap状态信息
逻辑卷LVM
概述
能够在保持现有数据不变的情况下动态调整磁盘容量,从而提高磁盘管理的灵活性
/boot分区用于存放引导文件,不能用LVM=C盘
特点
①灵活自定义磁盘空间②支持跨磁盘组成完整的逻辑分区③弹性扩容缩容
可操作性的对象
1.完整的磁盘
2.完整的分区
命令
前缀对象
PV 物理卷
pv*
VG 卷组
vg*
LV 逻辑卷
lv*
*后缀功能
scan扫描
create创建
display显示
remove删除
extend扩展(pv没有)
reduce减少(pv没有)
创建LVM步骤
1.准备物理磁盘(空的) ll /dev/sd*
2.pv命令 将物理磁盘转换成物理卷
pvcreate /dev/sd*
3.VG 创建卷组
vgcreate 组名 /dev/sd*物理卷
4.LV 创建逻辑卷
lvcreate -L 容量(M/G) -n 逻辑卷名 卷组名
或lvwxtend -L +容量 /dev/逻辑卷名/卷组名
-L大小 -n卷名
5.格式化LV
mkfs.xfs /dev/卷组名/逻辑卷名
6.挂载
1)创建挂载点:mkdir /mnt/lv1
2)挂载:mount /dev/vg1/lv1 /mnt/lv1
LVM扩容流程
1)管理VG
1)创建新的PV pvcreate /dev/sd*
2)新的PV扩展到VG vgextend vg1 /dev/sd*
2)LV扩容
扩容LV lvextend -L 1G /dev/vg1/lv1
增加1G空间给lv1
3)刷新文件系统
xfs_growfs /dev/vg1/lv1 刷新xfs文件系统
resize2fs /dev/vg1/lv1 刷新ext4文件系统
LVM磁盘配额
条件
需要Linux内核支持
安装xfsprogs和quota软件包
特点
作用范围:针对指定的文件系统(分区)
限制对象:用户账号、组账号
限制类型:磁盘容量(block)、文件数量(inode)
限制方法:软限制、硬限制
软限制:指定一个软性的配额数值(磁盘空间,文件数量)在固定的宽限期(默认七天)内允许暂时超过,但是系统会警告
硬限制:制定一个硬性的配额数值,超过则禁止
硬限制的配额值应大于软限制,否则软限制失效
配额流程
1)安装xfsprogs和xfs_quota软件包
rpm -q xfsprogs quota
yum -y install xfsprogs quota
2)以支持配配额功能的方式挂载文件系统
umount /dev/vg1/lv1
mount -o usrquota,grpquota /dev/vg1/lv1 /opt
添加挂载参数"usrquota,grpquota"用于增加对用户、组配额功能的支持
或:vim /etc/fstab
/dev/vg1/lv1 /opt xfs
defaults,usrquota,grpquota 0 0
umount /dev/vg1/lv1
mount -a
3)编辑用户和组账号的配额设置
useradd lisi
passwd lisi
xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=8 ihard=10 lisi’ /opt
-x:表示启用专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用
-c:表示直接调用管理命令
limit:限额,限制
-u:指定用户
-g:指定组
bsoft:设置磁盘容量的软限制
bhard:设置磁盘容量的硬限制
isoft:设置磁盘文件数的软限制
ihard:设置磁盘文件数的硬限制
4)验证磁盘配额功能
chmod 777 /opt
给挂载的/opt文件赋权
su lisi
cd /opt
dd if=/dev/zero of=/opt/1.txt bs=10M count=12
验证磁盘容量超限
dd命令是一个设备转换和连续复制的命令
if= 指定输入设备或文件
of= 指定输出设备或文件
bs= 指定读取数据块大小
count= 指定读取数据块的数量
/dev/zero "零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件
touch {1…6}.txt
验证磁盘文件数超限
5)查看磁盘配额
xfs_quota -c ‘quota -uv lisi’ /opt
查看容量限制
xfs-quota -c ‘quota -i -uv lisi’ /opt
查看文件数限制
-i:查看文件数
-u:对用户查看
-g:对组查看
-v:详细信息
xfs_quota -x -c ‘report -aibh’
查看所有可用分区的磁盘容量配额使用情况
-a:查看所有可用分区的配额使用报告
-b:查看磁盘容量
-h:友好显示
文件系统
名词
inode值 索引节点
记录文件的属性
inode值决定了文件系统中的文件的数量
df -i 观察某个分区中的inode节点数
block 块
存储文件的实际数据
superblock超级块
block和inode的总量
磁盘空间的限制根据inode和block两方面
类型
EXT4文件系统(centos6默认)
XFS文件系统(centos7默认)
索引——相当于书上的目录
存放文件和目录数据的分区
高性能的日志型文件系统
CentOS 7系统中默认使用的文件系统
区别
centos7默认文件系统是XFS,centos6是EXT4,cnetos5是EXT3.
ext4受限制于磁盘结构和兼容问题,可扩展性和scalability确实不如xfs
xfs是一种非常优秀的日志文件系统,它是SGI公司设计的。xfs被称为业界最先进的、最具可升级性的文件系统技术,
XFS是一个64位文件系统,理论上最大支持8EB减1字节的单个文件系统,实际部署时取决于宿主操作系统的最大块限制。
RAID磁盘阵列
简介
RAID:廉价磁盘冗余阵列
作用:容错、提升读写速率
类型
RAID0
至少两块盘,数据分别写在不同的盘上
读写高速,不能容错。条带集
RAID1
取两块硬盘,一个数据同时在两块写入,容量只有一半,但其中一块坏了另一块还有数据
容错率高。镜像集,写入慢一半,读取一样
RAID5
至少三块硬盘,其中一块盘存储校验数据,另外两块盘分别存储不同数据,其中一块盘坏了,其他硬盘可以逆运算反推出坏盘数据
可靠,高速。奇偶校验条带集,适合多读少写
RAID10
RIAD0+RIAD1
RAID区别
1.硬RAID:需要RAID卡,有自己的CPU,处理速度快,有电池和无电池。
2.软RAID:通过操作系统实现,比如windows、Linux
创建软RAID
1)安装mdadm软件包
yum -y install mdadm
2)创建分区 fdisk
修改分区类型ID号为“fd”
3)创建RAID
RAID5
mdadm -C -v /dev/md5 [-a yes] -l5 -n3 /dev/sd[bcd]1 -x /dev/sde1
-C:表示新建
-v:显示创建过程中的详细信息
/dev/md*:创建RAID5的名称
[-a yes]:–auto,表示如果有交互自动yes
-l:指定RAID的级别,l5表示创建RAID5
-n:指定使用几块硬盘创建RAID,n3表示用3块
/dev/sd[adc]1:指定使用这三块硬盘创建RAID
-x:指定使用几块硬盘做热备盘,x1表示一块
/dev/sde1:指定该盘用作热备盘
RAID10
方法一:先创建两个RAID1,再合并成RAID0
mdadm -Cv /dev/md0 -l1 -n2 /dev/sd[bc]1
mdadm -Cv /dev/md1 -l1 -n2 /dev/sd[de]1
mdadm -Cv dev/md10 -l0 -n2 /dev/md0 /dev/md1
方法二:直接用四个分区创建RAID10
mdadm -Cv /dev/md10 -l10 -n4 /dev/sd[bcde]1
4)mkfs.xfs /dev/md* 创建文件系统
5)mkdir 目录 创建一个目录作为挂载点
6)mount /dev/md* 目录 挂载RAID
7)cat /proc/mdstat 或mdadm -D /dev/md*
查看创建RAID进度,RAID信息
测试RAID5
mount /dev/md5 /data
cp /etc/sysconfig/network-scripts/ifcfg-ens33
cat /data/ifcfg-ens33
mdadm -f /dev/md0 /dev/sdb1
cat /data/ifcfg-ens33
watch -n 1 ‘……’ 用watch命令每隔一秒刷新查看
cat /proc/mdstat #查看过程信息
或 mdadm -D #查看信息
mdadm命令常用选项
-D:查看信息
-r: 移除设备
-a: 添加设备
-S: 停止RAID
-A: 启动RAID
mount /dev/md5 /data
cp /etc/sysconfig/network-scripts/ifcfg-ens33
cat /data/ifcfg-ens33
mdadm -f /dev/md0 /dev/sdb1
cat /data/ifcfg-ens33
watch -n 1 ‘……’ 用watch命令每隔一秒刷新查看
cat /proc/mdstat #查看过程信息
或 mdadm -D #查看信息
mdadm命令常用选项
-D:查看信息
-r: 移除设备
-a: 添加设备
-S: 停止RAID
-A: 启动RAID
-f:添加故障
END