磁盘存储和文件系统

1.机械磁盘和固态硬盘

机械硬盘:传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机等,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小。磁头可沿盘片的半径方向运动,加上盘片每分钟几千转的高速旋转,磁头就可以定位在盘片的指定位置上进行数据的读写操作。数据通过磁头由电磁流来改变极性方式被电磁流写到磁盘上,也可以通过相反方式读取。

固态硬盘:用固态电子存储芯片阵列而制成的硬盘,由控制单元和存储单元组成。

固态硬盘SSD传输速率性能是HDD的2倍

相较于SSD,HDD在价格,容量占有绝对优势

硬盘有价,数据无价,目前SSD不能完全取代HHD

2.硬盘存储术语

head:磁头 磁头数=盘面数

track:磁道 磁道=柱面数

sector:扇区,512bytes

cylinder:柱面 1柱面=512*63*255=7.84M

识别SSD和机械硬盘类型

lsblk -d -o name,rota
1表示机械,0表示ssd

3.MBR分区

MBR:1982年,使用32位表示扇区数,分区不超过2T

MBR分区中一块硬盘最多有4个主分区,也可以3主分区+1扩展(N个逻辑分区)

MBR分区:主和扩展分区对应1-4,/dev/sda3,逻辑分区从5开始,/dev/sda5

分区表含4个分区项,偏移地址01BEH--01FDH,每个分区表项长16个字节,共64字节为分区项1,分区项2,分区项3,分区项4

结束标志字,偏移地址01FE--01FF的2个字节值为结束标志55aa

备份MBR的分区表,并破坏后恢复

[13:43:13 root@centos7 ~]$dd if=/dev/sda of=ybw bs=1 count=64 skip=446
[13:47:11 root@centos7 ~]$scp ybw 10.0.0.8:
备份分区表 [
13:49:51 root@centos7 ~]$dd if=/dev/zero of=/dev/sda bs=1 count=64 seek=446
破坏分区表
[14:00:39 root@centos7 ~]$reboot 用光盘进入救援模式 ifconfig ens33 10.0.0.7/24 配置ip地址 scp 10.0.0.8:/root/ybw . 拷贝到本机 dd if=ybw of=/dev/sda bs=1 count=64 seek=446 reboot 恢复分区表

4.GPT分区

GPT支持128个分区

使用128为uuid表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位

GPT分区结构分为4个区域

GPT头

分区表

GPT分区

备份区域

5.管理分区

lsblk:列出块设备

 

创建分区命令

fdisk [device...]:管理MBR分区

fdisk -l 查看分区

子命令:

l 查看可更改的类型

p 分区列表

t 更改分区类型

n创建新分区

d删除分区

v校验分区

w保存并退出

q 不保存并退出

u 转换单位

 

gdisk[device...]:管理GPT分区

cat /proc/partations:查看内核是否已经识别新的分区

partprobe:重新设置内存中的内核分区表版本,适合除了Centos6以外的其他版本5,7,8

6.文件系统

linux常用文件系统

ext4:是ext文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳,创建和使用举行文件16TB,最大1EB的文件系统,以及速度的tisheng

xfs:支持最大8EB的文件系统

cat /proc/filesystems:查看当前支持的文件系统

7.创建文件系统

mkfs.ext4 /dev/sda

xfs

btrfs

常用选项

-b 指定块block大小

-L ‘LABEL’设置卷标

-N 指定分区中创建多少个inode

-m 默认5%,为管理人员预留空间占中空间的百分比

8.查看和管理分区信息

blkid 可以查看块设备属性信息

findfs查找分区

[15:15:57 root@centos7 ~]$findfs UUID="fa11e439-93c9-4f96-89e9-9903bd003f55"
/dev/mapper/centos-home

[15:21:53 root@aiyoubucuo ~]$findfs `sed -rn '/boot/s#^([^ ]+).*#\1#p' /etc/fstab`
/dev/nvme0n1p1

tun2fs:重新设定ext系列文件系统可调整参数的值

-l 查看指定文件系统超级块信息

-L  ‘LABEL’ 修改卷标

-m  修改管理人员预留空间占中空间的百分比

-U uuid 修改uuid号

9.挂载 

挂载:将额外文件系统与根文件系统某现存的目录建立起关联关系,进而使得此目录做为其他文件访问入口的行为

卸载:为解除此关联关系的过程

mount

mount [-fnrsvw] [-t vfstype] [-o options] device mountpoint

device:指明要挂载的设备

设备文件:列如:/dev/sda5

卷标:-L ‘LABEL’,列如-L ‘data’

UUID:-U ‘UUID’ :列如-U ‘e5d250a7-eb14-4f2b-9452-b9bb36c3dfec’

伪文件系统名称:proc,sysfs

mountpoint:挂载点目录必须事先存在,建议使用空目录

-t fstype 指定要挂载的设备上的文件系统类型,如:ext4,xfs

-r 只读挂载

-w 读写挂载,此为默认设置,可省略

-n 不更新/etc/mtab, mount不可见

-L ‘LABEL’ 以卷标指定挂载设备

-U ‘UUID’ 以UUID指定要挂载的设备

-o 多个选项使用逗号分隔

卸载文件系统umount

umount 设备名|挂载名

持久挂载

将挂载保存到/etc/fstab中可以下次开机时,自动启用挂载

/etc/fstab

UUID=e5d250a7-eb14-4f2b-9452-b9bb36c3dfec /data      ext4    defaults        0 0
要挂载的设备或伪文件系统LABEL,UUID,伪文件名称 挂载点 文件系统类型 挂载选项

添加新的挂载项,需要执行下面命令生效

mount -a

10.swap介绍

swap交换分区是系统RAM的补充,swap分区支持虚拟内存。当没有足够的RAM保存系统处理的数据时会将数据写入swap分区,当系统缺乏swap空闲时,内核会因RAM内存耗尽而终止进程。配置过多swap空间会造成存储设备处于分配状态但闲置,造成浪费,过多swap空间还会掩盖内存泄漏

注意:为优化性能,可以将swap分布存放,或高性能磁盘存放

官方推荐

系统中的RAM量                 推荐的swap空间                允许休眠的建议swap空间大小

低于2GB                              RAM量的2倍数                           RAM容量的三倍

2GB-8GB                             等于RAM量                                 RAM量的倍数

8GB-64GB                            4GB到RAM容量的0.5倍                RAM容量的1.5倍

超过64GB                              独立负载(至少4GB)                  不建议使用休眠功能

交换分区实现过程

创建交换分区或文件

使用mkswap写入特殊签名

在/etc/fstab文件中添加适当的条目

使用swapon -a 激活交换空间

 

swapon [option] ...[device]

-a:激活所有的交换分区

-p :指定优先级,也可在/etc/fstab 在第四列指定:pri=value,需要swapoff  /dev/... 再swapon -a

-s 可以查看swap分区信息

禁用swap分区

swapoff

11.磁盘常见工具

df [option] ...[file] ...

-H 已10为单位

-i inodes节点编号

-h human-readable

-T 查看挂载文件系统

 

du [option] ... DIR

-h  可读的

-s summary概要

--max-depth=# 指定最大目录层级

-x 忽略不在同一个文件系统的目录

[10:10:34 root@centos7 ~]$du -sh /etc
31M    /etc

 

工具dd

dd if=/path/from/src of=/path/to/dest bs=# count=#

if=file 从所命名文件读取而不是从标准输入

of=file 写到所命名的文件而不是到标准输出

bs=size 指定块大小

skip=blocks 写入文件从开头忽略blocks个ibs大小的块

seek=blocks 目标文件忽略多少个块

count=n 复制n个bs

notrunc 不截断输出文件

[10:29:20 root@centos7 ~]$echo abcdef >f1.txt 
[10:31:28 root@centos7 ~]$cat f1.txt 
abcdef
[10:31:33 root@centos7 ~]$echo 123456789 >f2.txt 
[10:31:57 root@centos7 ~]$cat f2.txt 
123456789
[10:32:02 root@centos7 ~]$dd if=f1.txt of=f2.txt bs=1 count=2 skip=3 seek=4
2+0 records in
2+0 records out
2 bytes (2 B) copied, 0.000264134 s, 7.6 kB/s
[10:32:41 root@centos7 ~]$cat f2.txt 
1234de

12 RAID

 

 

 空间利用率:N

最少硬盘数:1+

优点:读写性能提升

缺点:无容错能力

 

 

空间利用率:%50N

最少硬盘数:2+

优点:有冗余能力,读性能提升

缺点:写性能下降,磁盘利用率不高

 

 

空间利用率:n-1

最少硬盘数:3,3+

优点:读写性能提升,有容错能力

缺点:最多允许1块磁盘损坏

 

 

空间利用率:n-2

最少硬盘数:4,4+

优点:读写性能提升,有容错能力,最多允许2块磁盘损坏

缺点:最多允许2块磁盘损坏

 

 

空间利用率:n-2

最少硬盘数:4,4+

优点:读写性能提升,有容错能力,

缺点:当一块硬盘损坏时,再坏一块系统损坏的概率为2/3

 

 

空间利用率:n-2

最少硬盘数:4,4+

优点:读写性能提升,有容错能力,

缺点:当一块硬盘损坏时,再坏一块系统损坏的概率为1/3

13.逻辑卷管理器

LVM:可以允许对卷进行方便操作的抽象层,包括重新设定文件系统的大小,允许可以弹性的更改LVM的容量

实现过程

将设备指定为物理卷

用一个或者多个物理卷来创建一个卷组,物理卷是用固定大小的物理区域来定义的

在物理卷上创建的逻辑卷,是由物理区域PE组成

可以再逻辑卷上创建文件系统并挂载

 

 实现逻辑卷

工具来自lvm2包

 

pv管理工具

pvs:显示简要pv信息

pvdisplay 详细

[11:31:45 root@centos7 ~]$pvcreate /dev/sdc1 
创建pv
[11:32:55 root@centos7 ~]$pvremove /dev/sdc1
移除pv

vg管理工具

vgs,vgdisplay

[11:37:28 root@centos7 ~]$vgcreate -s 16M ybw /dev/sdc1
-s指定PE大小默认4M,卷组名ybw
[11:48:26 root@centos7 ~]$vgextend ybw /dec/sdd
添加额外的磁盘到卷组ybw中
[11:54:44 root@centos7 ~]$vgreduce ybw /dev/sdd
从卷组ybw中移除sdd
[11:56:49 root@centos7 ~]$vgremove ybw
删除卷组

lv管理工具

lvs,lvdisplay

[12:02:50 root@centos7 ~]$lvcreate -L 1G  -n nihao ybw
从卷组中取出1G添加到nihao逻辑卷中
[12:02:25 root@centos7 ~]$lvremove /dev/ybw/nihao
删除逻辑卷

 范例

[14:09:08 root@centos7 ~]$pvcreate /dev/sdc1 /dev/sdd
[14:09:44 root@centos7 ~]$vgcreate ybw /dev/sdc1 /dev/sdd
[14:13:35 root@centos7 ~]$lvcreate -L +1G -n nihao ybw
[14:20:36 root@centos7 /]$mkfs.ext4 /dev/ybw/nihao
[14:21:20 root@centos7 /]$vim /etc/fstab
UUID=cba62b6f-46bc-49d3-ba65-c2a0677c9f1b /data  ext4    defaults      0 0
永久挂载

 在线扩展逻辑卷

[14:59:51 root@centos7 ~]$lvextend -L +1G /dev/mapper/ybw-nihao
扩容1G
[15:03:56 root@centos7 ~]$resize2fs /dev/mapper/ybw-nihao
注意还要扩容文件系统
resize2fs扩容ext文件系统
xfs_growfs 针对xfs
lvresize -r -L +1G /dev/mapper/ybw-nihao
一步实现空间和文件系统的扩展

缩减逻辑卷

注意缩减有数据损坏的风险,建议先备份再缩减,xfs文件系统不支持缩减

[15:04:41 root@centos7 ~]$umount /dev/mapper/ybw-nihao
解除挂载
[15:13:14 root@centos7 ~]$e2fsck -f /dev/mapper/ybw-nihao
检查是否正常
[15:16:59 root@centos7 ~]$resize2fs /dev/mapper/ybw-nihao 1G
[15:17:06 root@centos7 ~]$lvreduce -L -1G /dev/ybw/nihao
[15:22:04 root@centos7 ~]$mount /dev/mapper/ybw-nihao /data

逻辑卷快照

快照是特殊的逻辑卷,他是在生成快照时存在的逻辑卷的准确拷贝,对于需要备份或者复制到现有数据临时拷贝以及其它操作来说,快照时最合适的选择,快照只有在他们和原来的逻辑卷不同时才会消耗空间,建立快照的卷大小小于等于原始逻辑卷,也可以使用lvextend扩展快照

逻辑卷管理快照

快照就是将当时的系统信息记录下来,就好像照相一般,若将来有任何数据改动了,则原始数据会被移动到快照区,没有改动的区域则由快照区和文件系统共享

特点

备份速度快,瞬间完成

应用场景是测试环境,不能完成代替备份

快照后,逻辑卷的修改速度会有一定影响

实现逻辑卷快照

[15:45:15 root@centos7 ~]$lvcreate -l 64 -s -n data-snapshot -p r /dev/mapper/ybw-nihao
为现有逻辑卷创建快照
[15:47:07 root@centos7 ~]$mkdir -p /mnt/snap
[15:51:54 root@centos7 ~]$mount -o ro,nouuid /dev/ybw/data-snapshot /mnt/snap
挂载快照
[15:53:54 root@centos7 ~]$umount /dev/mapper/ybw-data--snapshot 
[15:56:02 root@centos7 ~]$umount /dev/mapper/ybw-nihao 
[15:56:07 root@centos7 ~]$lvconvert --merge /dev/ybw/data-snapshot
恢复快照
[16:02:44 root@centos7 ~]$umount /mnt/snap
删除快照

 

posted @ 2020-12-19 15:28  哎呦不错~~  阅读(297)  评论(0编辑  收藏  举报