Linux09 磁盘管理和fstab配置文件

磁盘体系结构

系统的安装部署过程

# 第一个历程:进入系统引导界面进行配置
引导项说明:
1.安装centos7系统
2.测试光盘镜像并按安装系统
3.排错模式(修复系统 重置系统密码)

补充:centos7系统网卡名称
默认系统的网卡名称为 eth0  eth1  --centos6
默认系统的网卡名称为 ens33 ens34  --cnetos7
如何调整网卡名称:
选择安装centos--tab键  -- net.ifnames=0 biosdevname=0

如何对Linux系统进行分区:
    1.通用分区方案
        c盘==/boot 引导分区  200M
            swap   交换分区  当内存不够用的时候,将硬盘中的空间充当内存使用
            内存<8G,将以交换分区大小=内存大小的1.5倍,内存1G--swap1.5G
            内存>=8G  建议交换分区大小=8G
        ==/  根分区  剩余全部空间

    2.数据信息比较重要的分区方案
        /boot	200M
        swap	<8G	1.5G内存大小
                >=8G  8G
        /		20G~200G
        /data	剩余空间大小

    3.灵活分区方案
        /boot	200M
        swap	<8G	1.5G内存大小
                >=8G  8G
        /		20G~200G
		剩余空间不分 # 系统装完之后,根据业务需要再分剩下的空间

系统安全配置(关闭)
	system-kdump	将宕机前系统中的内存异常信息进行保存,可以根据此文件排查宕机原因
	system-security policy 系统的安全策略配置

磁盘概念

一、磁盘的结构体系
1.磁盘的物理结构(外部结构 内部结构) 工作原理(先切换磁头,让磁头径向运动)
2.磁盘阵列说明(raid0 raid1 raid5 raid10 raid01)
	磁盘阵列如何配置
	配置LVM L 逻辑 V 卷组 M 管理  逻辑卷管理 --> 实现可以随意调整磁盘分区大小
3.磁盘分区概念
	给容量较小的磁盘进行分区:小于2T  fdisk
	给容量较大的磁盘进行分区:大于2T  parted
4.磁盘格式化操作(创建文件系统)
5.磁盘维护管理知识(如何使用磁盘 挂载使用)

二、磁盘层次结构详细说明--物理结构
磁盘的外部结构:看得见的结构信息
组成部分:
	a 磁盘主轴 决定磁盘转速(rpm-round per minute)
		家用磁盘转速  7200 rpm 5400 rpm
		企业磁盘转速 15K  rpm  10k  rpm
	b 磁盘盘片   用于存储数据
	c 磁盘磁头  用于读取数据
	d 磁盘接口  用于连接主板  用于连接阵列卡
	
	磁盘的内部结构:看不见的结构信息
	组成部分:
	a 磁盘(disk)
	b 磁头(head)
		作用说明:用来写入和读取数据的
		特点说明:盘面数量等于磁头数量
		工作原理:采用径向运动读写数据
	c 磁道(track)
		作用说明:用来存储用户数据
		特点说明:由多个同心圆组成
		
		存储计数:最外面同心圆为0磁道
		工作原理:磁盘默认按照磁道寻找数据
			重点原理:磁头径向运动为机械运动(寻道) 性能小于固态硬盘(芯片)
			原理特点:磁头机械运动较慢
	
	d 扇区(sector)
		作用说明:用来存储用户数据
		特点说明:磁盘存储最小单位
		储存计数:默认磁盘扇区从1扇区开始,扇区大小为512字节
		系统存储最小单位是block
	e 柱面(Cylinder)
		作用说明:用来存储用户数据
		特点说明:不同盘面上相同的磁道组成(圆柱体)
		工作原理:磁盘默认按照柱面进行读写
			重点原理:磁头覟的切换为电子切换
			原理特点:磁头电子切换较快
	
	f 单元块(Units)
		作用说明:用来存储用户数据
		特点说明:表示单个柱面大小

磁盘层次结构--磁盘阵列raid

阵列有什么作用?
1)提高磁盘存储效率
2)提高数据存储的安全性
3)提高磁盘存储容量
阵列的配置方法:
raid 0  存储数据效率高,存储安全性低
raid 1  存储数据效率低,存储安全性高

raid5 存储数据效率较高(相对raid1),存储安全性较高(相对raid0)
说明:至少由3块磁盘,raid5阵列中只能最多坏一块磁盘

买了3块300G的硬盘做成raid5阵列,最多可以存储600G的数据
300G 300G 300G -->raid5  --> 600G  损耗一块磁盘的容量

raid10 数据安全保障提高 数据存储效率提高 磁盘容量将会损耗 需要成对添加磁盘

raid01 数据安全保障提高 数据存储效率提高 磁盘容量将会损耗 需要成对添加磁盘

LVM:logical volume management,将多块硬盘整合为一块 LVM是实现分区弹性缩容和扩容

raid0:

raid1:

raid5:

raid01:

磁盘层次结构--磁盘分区

# 磁盘分区概述
1.系统启动引导记录(mbr:主引导记录)
	记录所在位置:0磁头 0磁道 1扇区(512字节)
	记录占用空间:446字节
2.系统分区类型说明
	主分区(primary;64字节),最多4个主分区,每隔分区占用16字节
	扩展分区(extend:16字节),最多只能存在一个,无法存储数据信息
	逻辑分区(logical),可以有多个逻辑分区,用于存放数据信息
3.系统分区命名说明
	按磁盘类型命名:SAS/SATA/SCSI 
		第一块:/dev/sda
		第二块:/dev/sdb
		第三块:/dev/sdc
	按分区数量命名
		主分区和扩展分区
			第一分区:/dev/sda1
			第二分区:/dev/sda2
			第三分区:/dev/sda3
		逻辑分区
			第一分区:/dev/sda5
			第二分区:/dev/sda6

# 磁盘分区方法
# 情况一:磁盘分区实践--磁盘小于2T
第一个历程:准备磁盘环境
准备了一块新的10G硬盘

第二个历程:在系统中检查是否识别到了新的硬盘
检查是否有新的磁盘存储文件 # ll /dev/sdb

第三个历程:
对磁盘进行分区处理(fdisk-- 进行分区,查看分区信息)
d: 删除分区
g:创建一个新的空的GPT分区表(可以对大于2T磁盘进行分区)
l:列出可以分区的类型
m:输出帮助菜单
n:新建增加一个分区
p:输出分区的结果
q:不保存退出
t:改变分区的系统id==改变分区类型(LVM 增加swap分区大小)
u:改变分区的方式  是否按照扇区进行划分
w:将分区的信息写入分区表并退出==保存分区信息并退出

需求:划分2个主分区 划分2个逻辑分区
sdb1 2G
sdb2 2G
sdb5 3G
sdb6 1G

第四个历程:保存退出(w),让系统可以加载识别分区信息
让系统能能够加载识别分区文件  # ll /dev/db* 可能新硬盘的分区表没加载出来
	partprobe /dev/sdb

# 情况二:磁盘分区实践--磁盘大于2T
第一个历程:准备磁盘环境
虚拟主机中添加一块3T硬盘

第二个历程:使用parted命令进行分区

mklabel,mktable LABEL-TYPE   创建一个分区表(默认为mbr)
print [devices|free|list,all|NUMBER]  显示分区信息
mkpart PART-TYPE [FS-TYPE] START END  创建一个分区
quit	退出分区状态
rm NUMBER	删除分区

修改磁盘分区类型:mklabel gpt

分区方法:
mkpart primary 0 2100G
mkpart primary 2100G 2200G

第三个历程:加载磁盘分区
partprobe /dev/sdc

第四个历程:退出(quit),让系统可以加载识别分区信息
	partprobe /dev/sdc

磁盘层次结构--格式化操作(创建文件系统)

mkfs.xfs /dev/sdb1
或: mkfs -t xfs /dev/sdb2

创建文件按系统:磁盘分区存储数据的方式
ext3/4	centos6
xfs	centos7	格式化效率较高 数据存储效率提升(数据库服务器)

磁盘层次结构--磁盘挂载应用

mount /dev/sdb1 /mount01
mount /dev/sdb2 /mount02
检查确认:
df -h
/dev/sdb1	1014M	33M	982M	4%	/mount01
/dev/sdb2	1014M	33M	982M	4%	/mount02

如何实现开机自动挂载?
方法一:将挂载点命令放入/etc/rc.local
tail -2 /etc/rc.local
	mount /dev/sdb1 /mount01
	mount /dev/sdb2 /mount02
重启机器,发现分区sdb1,sdb2并没有挂载上,原因:/etc/rc.local(链接文件)对应的原文件/etc/rc.d/rc.local没有执行权限;
	chmod a+x /etc/rc.d/rc.local
	
	系统卡机加载rc.local流程:
		加载/etc/rc.local --> /etc/rc.d/rc.local --> 以绝对路径方式执行 /etc/rc.d/rc.local
方法二:载/etc/fstab文件中进行设置

/dev/mapper/rhel-root   /          xfs     				defaults        0 				0
/dev/sda1 			   /boot      xfs     			   defaults        0 	   			0
/dev/mapper/rhel-swap   swap       swap    				defaults        0 				0
挂载磁盘文件(存储设备) 挂载点   指定文件系统类型    挂载的参数(defaults是rw)  是否备份磁盘	是否检查磁盘

mount -o ro/rw  已分区文件路径  目录  # 挂载文件系统为只读或者读写权限,如果挂载为只读权限,即使目录有写权限,也不能在该目录写文件,而且目录的原有文件在挂在后将消失,所以要提前备份哦。。。

磁盘长见问题

1)磁盘满的情况 No space left on device
	a.存储的数据过多了
	模拟磁盘空间不足
	dd if=/dev/zero of=/tmp/zhang.txt bs=1G count=10
	
		(1)block块不足了
		解决方式:
			(1)删除没用的数据
			(2)找出大的没用的数据
				find / -type f -size +400M  # 找出根目录下文件大小超过400M的
				du -sh /* | sort -h # sort -h选项表示按照文件K,M,G的大小排序
		(2)inode 存储空间不足(出现了大量的小文件)  # df -i 发现被挂载的目录对应的磁盘分区的inode号已经被使用100%了	

如恶化调整swap分区大小

第一个历程:将磁盘分出一部分空间给swap分区使用
dd if=/dev/zero of=/tmp/1G bs=100M count=10

第二个历程:将指定磁盘空间作为swap空间使用
mkswap /tmp/1G
# 内存突然占满,临时启用/tmp/1G 的1G硬盘空间作为临时内存空间使用
swapon /tmp/1G # 启用swap分区

# 当内存够用的时候,再关闭这1G 的swap分区并删除
swapoff /tmp/1G
rm -rf /tmp/1G

磁盘相关命令总结

fdisk  --磁盘分区工具
parted --磁盘分区工具
partprobe 通知系统磁盘的分区信息变化,更新内核的硬盘分区表信息
tune2fs  调整ext2 ext3 ext4文件系统参数  关闭磁盘分区的自动检功能
mkfs  格式化创建文件系统
dumpe2fs  导出ext2/ext3/ext4文件系统参数
resize2fs  导出ext2 ext3 ext4文件系统大小
fsck  磁盘检查命令,-a参数可以自动恢复
dd  转换或复制文件
od  查看二进制文件信息(od -xa)
mount  挂载文件系统
unmount  卸载文件系统
df  报告文件系统磁盘空间的使用情况
mkswap  创建交换分区
swapon  激活交换分区
swapoff  关闭交换分区
sync  刷新文件系统缓冲区 # 手动将内存中的数据刷新到硬盘,不用等待缓冲区的数据定时定量刷到硬盘
iotop  查看系统的磁盘读写速度,显示出进程使用swap的情况

磁盘管理

在磁盘的 0磁道 0扇区 存放的时MBR,独立于操作系统之外的。
MBR:主引导记录(512bytes)
	Master Boot Record
	Main Boot Record  
	446bytes:BootLoader,程序
    64bytes:
       16bytes:标识一个分区,最多只能建立4个主分区  想创建更多分区,第4个分区可以作为扩展分区,扩展分区存放的是指针,指针指向一个更大的存储空间,再在这个存储空间划分存储分区(逻辑分区)。
	2bytes:Magic Number
		标记MBR是否有效

文件连接

硬链接:/backup/a/m.txt /backup/b/n.txt 像这种m.txt和n.txt直接指向同一个inode的不同路径,他们彼此之间就可以称之为硬链接。
1.只能对文件创建,不能应用于目录;
2.不能跨文件系统;
3.创建硬链接会增加文件被链接的次数;

符号链接:
	1.可应用于目录;
	2.可以跨文件系统;
	3.不会增加被链接文件的链接次数;
	4.其大小为指定的路径所包含的字符个数;
	
	
du 目录名:显示一个目录或文件系统整体所占空间的大小(文件所占用的磁盘的大小)
du -s : 显示这个目录及这个目录中的子文件各占用的磁盘大小
du -sh : 可以对所占尺寸的大小进行单位换算

df:查看文件系统对磁盘空间的使用率
	-h # 单位换算
	-i # 以inode号使用百分比显示磁盘的使用率
	-P # 因为文件名太长会换行显示,加上-P参数,可以不换行显示
        df -P -i
设备文件:
	b:按块为单位,随机访问的设备;
	c:按字符为单位,线性访问;
	
	b:硬盘
	c:键盘

/dev  # ls -al /dev   的第5列和第6列代表:主设备号、次设备号,保存在inode中,不占用额外的磁盘空间。  引用一个设备时通过主设备号和次设备号引用的。
	主设备号 (major number):用于标识设备类型
	次设备号(minor number):表示同一种类型中不同设备

mknod (设备文件的创建)

mknod [OPTION]... NAME TYPE [MAJOR MINOR]
	-m MODE

硬盘设备的设备文件名:
IDE,ATA:hd
SATA:sd
SCSI:sd
USB:sd
	a,b,c...来区分同一种类型下的不同设备
IDE:
	第一个IDE口:主、从
		/dev/hda,/dev/hdb
	第二个IDE口:主、从
		/dev/hdc,/dev/hdd
sda,sdb,sdc,...
hda: 一个磁盘最多又4个主分区,或者3个主分区和1个扩展分区;扩展分区可以划分若干个逻辑分区,即使主分区小于4个,逻辑分区的编号也只能从5开始
	hda1:第一个主分区
	hda2:
	hda3:
	hda4:
	hda5:第一个逻辑分区
查看	当前系统识别了几块磁盘:	
fdisk -l  # 所有已识别的设备
fdisk -l [/dev/to/some_device_file]
fidsk -l /dev/sda  # 指定看sda这个已被识别的设备

管理磁盘分区:
    Linux支持的文件系统:
    文件系统是一种让我们在磁盘上创建文件管理的一种软件,属于内核中应该提供的基本功能;我们要把某个设备格式化成某个类型的文件系统,管理文件系统的软件(程序)在用户空间里面,是一个用户进程;用户进程可以实现将某个硬盘的分区格式化(高级格式化)为内核支持的某一中文件类型;

    格式化:低级格式化是用来创建磁道的;高级格式化,是用来创建文件系统的
    高级格式化: 
    mkfs -t ext3 # mkfs是一个格式化命令,格式化成ext3的类型
    创建文件系统需要用户的命令,介个内核制定的来完成
    
    fdisk /dev/sda
		p:显示当前硬件的分区,包括没保存的改动
		n:创建新分区
			e(extented):扩展分区
			p(physical):物理分区
		d:删除一个分区
		w:保存退出
		q:不保存退出
		t:修改分区类型
			L:
		l:显示所支持的所有分区类型

文件系统

文件系统是一种让我们在磁盘上创建
cp -r /etc/* /backup
tune2 -j /dev/sda7
4.调整其预留百分比为3%;
tune2fs -m 3 -L DATA /dec/sda7

5. 已重新挂在的方式挂载此文件系统为不更新访问时间戳,并验证其效果;
stat /backup/inittab
cat /backup/inittab
stat

mount -o remount,noatime /backup
cat 
stat

6.对此文件系统强行做一次检测;
e2fsck -f /dev/sda7

7.删除复制而来的所有文件,并将此文件系统重新挂在为同步(sync);而后再次复制/etc、目录中的所有文件至此挂载点,体验其性能变化;
rm -rf /backup/*
mount -o remount,sync /backup
cp -r /etc/* /backup
swap分区:

虚拟内存:



free # 查看当前系统的物理内存和交换空间的使用情况,默认单位是字节

free -m # 更换单位为M
	buffers(缓冲):防止过慢的接收数据的设备遭受到冲击,中间加的缓冲
	cached(缓存):为了重复使用


partprobe /dev/sda  # 让内核重新识别分区  一般创建新的分区之后要使用该命令,不然fdisk找不到新的分区

用fdisk命令,调整分区类型为82
创建交换分区:
	mkswap /dev/sda8
		-L LABEL  # 指定卷标
	free -m  发现交换分区还没启用,需要挂载才能使用
	swapon /dev/sda8
		-a:启用所有的定义在/etc/fstab文件中的交换设备
	swapoff  /dev/sda8 

回环设备
loopback,使用软件来模拟实现硬件
创建一个镜像文件,120G
dd if=/etc/inittab  of=/root/inittab  #类似cp if(input file)指定要拷贝的文件,of(output),要复制到目录及文件名

dd和cp的不同:
	dd:按照数据流进行的复制,可以只拷贝文件的几个字节
	cp:复制整个文件

使用本地回环设备创建交换分区:
    if=数据来源
    of=数据存储目标
    ba=1  # block size  指定以多少字节为一个单位去复制
    count=2 # 表示一共复制多少个这样的字节
    表示以一个字节为单位,一共复制两个字节
    seek=#:创建数据文件时,跳过的空间大小
    dd if=/dev/sda of=/mnt/usb/mbr.backup bs=512 count=1  # 指定从从/dev/sda拷贝数据,但是没有指定文件,所以是从sda磁盘的开头位置开始复制,复制的是MDR。 有需要的话,可以通过这个命令将磁盘的MBR进行备份,如果在磁盘的MBR损坏的时候我们可以用下面一个命令将其覆盖回来。
    dd if=/mnt/usb/mbr.backup of=/dev/sda bs=512 count=1  

    dd if=/dev/zero of=/var/swapfile2 seek=1023 bs=1M count=1024 # 跳过了前1023M,实际创建的这个swap只有1M  可以使用 du -sh /var/swapfile 查看
	


dd if=/dev/zero/ of=/var/swapfile bs=1M count=1024
ls -al /barswapfile
mkswap /var/swapfile
free -m
swapon /var/swapfile
free -m

mount命令,可以挂在iso镜像
mount DEVICE MOUNT_POINT
mount -o loop /root/rhci-5.8-1.iso /media  # 挂载本地回环设备

wget ftp://192.168.1.8/pub/isos/rhci-5.8-1.iso

fstab配置文件

文件系统的配置文件/etc/fstab
	os在初始化时,会自动挂载此文件中定义的每个文件系统
fstab文件中每列第具体含义:
要挂载的设备    挂载点	文件系统类型	挂载选项	转储频率	文件系统检测次序

转储频率(多长时间对此文件系统进行一次完全备份 0不备份 1每天备份 2每隔一天备份)
文件系统检测次序(只有根可以为1,0表示不检查)
mount -a # 挂载fstab中所指定的所有文件系统
mount -n # 挂载时不更新/etc/mtab文件;
当取消某个设备的挂载的时候,如果有人登录到这个文件系统,会导致卸载的时候报错:device is busy. 这时候可以使用fuser查看是什么用户正在使用该文件系统:
	如果没有fuser命令,可以使用 yum install psmisc -y 进行安装
	fuser : 验证
		-v # 显示是哪个用户正在访问
			fuser -v /var/test
		-k # 杀掉访问当前文件的进程
			fuser -k /var  # 用户会被踢出系统
		-m # 如果这个文件是个挂载点需要杀掉的话,需要加-m选项,
			fuser -km MOUNT_POINT:终止正在访问此挂载点的所有进程
			fuser -km /mnt/test
	unmount /mnt/test  # 现在就可以正常卸载了


cat /proc/filesystem:查看当前内核所支持文件系统类型

练习:

1.创建一个5G分区,文件系统为ext3,卷标为MYDATA,块大小为1024,预留管理空间为磁盘分区的3%,要求开机后可以自动挂载至/data目录,并且自动挂载的设备要使用卷标进行引用;

2.创建一个本地回环文件/var/swaptemp/swapfile来用于swap,要求大小为512MB,卷标为SWAP-FILE,且开机自动启用此交换设备;
mkdir /var/swaptemp
dd if =/dev/zero of=/var/swaptemp/swapfile bs=1M count=512
mkswap LABLE=SWAP-FILE /var/swaptemp/swapfile

/etc/fstab
/var/swaptemp/swapfile		swap	swap	defaults	0	0

3. 上述第一问,如何让其自动挂载的同时启用ACL功能;

/etc/fstab
LABLE='MYDATA'		/data	ext3	defaults,acl	0	0
posted on 2021-04-26 23:42  jueyuanfengsheng  阅读(314)  评论(0编辑  收藏  举报