1磁盘结构
2分区类型
3管理分区
4管理文件系统
5挂载设备
6管理虚拟内存
7RAID管理
8LVM管理
9LVM快照
I/O ports:I/O设备地址
一切皆文件:open()read(),write(),close()
设备类型:块设备,char
设备文件:关联至一个设备驱动程序,进而能够跟与之对应硬件设备进行通
设备号码:
主设备好:标识的设备类型
次设备号:标识同一类型下的不同设备
[root@centos7 ~]# ll /dev/sda*
brw-rw---- 1 root disk 8, 0 Oct 16 20:43 /dev/sda
brw-rw---- 1 root disk 8, 1 Oct 16 20:43 /dev/sda1
brw-rw---- 1 root disk 8, 2 Oct 16 20:43 /dev/sda2
brw-rw---- 1 rootdisk 8, 3 Oct 16 20:43 /dev/sda3
brw-rw---- 1 root disk 8, 4 Oct 16 20:43 /dev/sda4
brw-rw---- 1 root disk 8, 5 Oct 16 20:43 /dev/sda5
磁盘设备设备文件命名:/dev/DEV_FILE
SCSI, SATA, SAS, IDE,USB: /dev/sd
虚拟磁盘:/dev/vd 、/dev/xvd (vd虚拟化上的磁盘)
硬盘存储术语 head:磁头 track:磁道 cylinder:柱面 sector:扇区,512bytes
机械硬盘(HDD):Hard Disk Drive
主要由:盘片,磁头,盘 片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成
固态硬盘(SSD):Solid State Drive
用固态电子存储芯片阵列而制成的硬盘,由控 制单元和存储单元(FLASH芯片、DRAM芯片)组成。
相较于HDD,SSD在防震抗摔、传输速率、功耗、重量、噪音上有明显优势,SSD传 输速率性能是HDD的2倍
ZBR(Zoned Bit Recording)
CHS:
采用24bit位寻址,其中前10位表示cylinder,中间8位表示head,后面6位表示sector ,最大寻址空间8GB
LBA:
LBA是一个整数,通过转换成CHS格式完成磁盘具体寻址
由于CHS寻址方式的寻址空间在大概8GB以内,所以在磁盘容量小于大概8GB 时,可以使用CHS寻址方式或是LBA寻址方式;在磁盘容量大于大概8GB时,则 只能使用LBA寻址方式
为什么分区 ?
1优化了i/o速度 2.实现磁盘空间配置限制
3.提高修复速度 4.隔离系统和程序
5.安装多个os6.采用不同文件系统。
主要是两种分区格式:
MBR(磁盘小于2T使用)
:使用32位表示扇区数,分区不超过2T
0磁道0扇区:512bytes
446bytes: boot loader
64bytes:分区表,其中每16bytes标识一个分区
2bytes: 55AA
最多有4个主分区,也可以3主一扩展分区多个逻辑分区。
磁盘主引导记录MBR是有4个部分组成
主引导程序:运行系统引导程序
出错信息数据区:
分区表: 含4个分区项,偏移地址01BEH–01FDH, 每个分区表项长16个字节,共64字节为分区项1、分区项2、分区项3、分区项4
结束标志字:偏移地址01FE-01FF 2个字节55AA结束标志,
DPT结构:
GPT(磁盘大于2T使用)
使用时BIOS+MBR:
开机–bios初始化–bios自检-引导操作系统-进入系统
UEFI+GPT:
开机-UEFI初始化-引导操作系统-进入系统
1、列出块设备
2、创建分区使用
fdisk创建/gdisk创建GPT/parted 高级分区操作
parted的操作都是事实生效的,小心使用
用法:parted 选项 设备 命令 参数
parted /dev/sdb mklabel gpt|msdos
parted /dev/sdb print
parted /dev/sdb mkpart primary 1 200 (默认M)
parted -l 列出分区信息
parted /dev/sdb rm 1–删除分区
新建磁盘时发现磁盘,centos7:
echo ‘- - -’ > /sys/class/scsi_host/host 1 |2|3/scan
gdisk 类似于fdisk的GPT分区工具
fdisk -l 查看分区
fdisk /dev/sdb管理分区
子命令
p 分区列表 t 更改分区类型 n 创建新分区 d 删除分区 v 校验分区 u 转换单位
w 保存并退出 q 不保存并退出
查看内核是否已经识别新的分区:
1、cat /proc/partations
centos6:
2、partx -a /dev/DEVICE
3、kpartx -a /dev/DEVICE -f:foce
4、删除分区用 partx -d
5、centos5,7:使用partprobe
文件系统是操作系统用于明确存储设备或分区上的文件的方法和数据结构;即 在存储设备上组织文件的方法。操作系统中负责管理和存储文件信息的软件结 构称为文件管理系统,简称文件系统 。
作用:为用户建立文件,存入,读出,修改,转储文件,控制文件的存取,安全控制,日志压缩,加密。
各种文件系统连接: https://en.wikipedia.org/wiki/Comparison_of_file_systems
Linux文件系统:
ext2适用于那些分区容量不是太大,更新也不频繁额情况/boot分区
ext3:ext2改进版支持日志功能,非正常关机导致的异常回复 用户通用的文件系统,
ext4:是 ext 文件系统的最新版。提供了很多新的特性,包括纳秒级时间戳、创建和使 用巨型文件(16TB)、最大1EB的文件系统,以及速度的提升
xfs:SGI,支持最大8EB的文件系统 swap、btrfs 、AIX
光盘:iso9660
Windows:FAT32, exFAT,NTFS
Unix: FFS(fast), UFS(unix), JFS2
网络文件系统:**NFS, CIFS
集群文件系统:**GFS2, OCFS2(oracle)
分布式文件系统: fastdfs,ceph, moosefs, mogilefs, glusterfs, Lustre
RAW:未经处理或者未经格式化产生的文件系统
文件系统分类:
根据其是否支持"journal"功能:
日志型文件系统: ext3, ext4, xfs, …
非日志型文件系统: ext2, vfat
文件系统的组成部分:
内核中的模块:ext4, xfs, vfat
用户空间的管理工具:mkfs.ext4, mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
查前支持的文件系统:cat /proc/filesystems
mkfs.Fs_type /dev/DEVICE
EXT4
XFS
BTRFS
VFAT
mkfs -t FS_type /dev/DEVICE
-L ‘LABEL’ 设置卷标
使用命令:mke2fs,它是ext系列文件系统专用管理工具
mke2fs -t 指定文件类型(ext2/3/4)
-b 指定块大小 (1024/2048/4096)
-L 设置卷标
-j 相当于-text3 增加了日志功能
-N 指定分区中创建多个inode
-i 为数据空间中每多少个字节创建一个inode;不应该小于block大小。
-m 预留空间百分比设置,默认为5%
-O ^关闭/开启指定特性
文件系统标签:
e2label:管理ext系列文件系统的LABEL (卷标)
e2label DEVICE [LABEL]
findfs :查找分区
findfs [options] LABEL=
findfs [options] UUID=
一、常发生于死机或者非正常关机之后
二、挂载为文件系统标记为“no clean”
三、注意:一定不要在挂载状态下修复
四、fsck: File System Check
fsck.FS_TYPE
fsck -t FS_TYPE
-p 自动修复错误
-r 交互式修复错误
FS_TYPE 一定要与分区上已经文件类型相同
五、e2fsck:ext系列文件专用的检测修复工具
-y 自动回答为yes
-f 强制修复
同一个设备可以挂载到多个目录
挂载的文件夹最好是干净的
两个设备挂载到同一文件,看到的是后挂的设备。
挂载点和/etc/fstab
1.配置文件系统体系
2.被mount、fsck和其他程序使用
3.系统重启时保留文件系统体系
4.可以在设备栏使用文件新卷标
5.使用mount -a 命令挂载/etc/fstab中所有文件系统。
1.每行定义一个文件系统
2.要挂在的设备:可以是设备文件 卷标,uuid
3.挂载点
4.文件类型选择相对应的,例如iso9660 nfs等
5.挂载选项:有默认的,ACL bind
6.后两位数字是第一位0:不做备份 1,每天转储 2:每隔天转储,基本上是全为0不用了
第二位:0不自检硬盘 1:首先自检 2:非rootfs使用。
是系统内存的补充,当没有足够的内存是保存系统处理的数据写入的swap分区
当系统缺乏 swap 空间时,内核会因 RAM 内存耗尽而终止进程。配置过多 swap 空间会造成存储设备处于分配状态但闲置,造成浪费,过多 swap 空 间还会掩盖内存泄露
一般内存小于2g配置为内存的2倍,内存2g-8g等于系统内存。
挂载交换分区:
基本设置包括:1、创建交换分区 2、使用mkswap写入特殊签名3、配置到文件/etc/fstab 4、激活空间swapon -a
swapon -p 指定优先级
pri=value越大越有优先使用,建议使用磁盘外圈设备。 范围区0到32767,未指定时默认为-1
文件系统占用信息
df -H 以10为单位
-T 文件系统的类型
-h
-i inodes号
-P 以Posix兼容的格式输出
命令不一样计算的也不一样
查看某目录总体空间占用状态:
du -h/-s /data
工具dd
convert and copy a file 转换和复制一个文件
备份MBR dd if=/dev/sda of=/tmp/mbr.bak bs=512 count=1 备份512字节到目标of下
破坏MBR中的bootloader dd if=/dev/zero of=/dev/sda bs=64 count=1 seek=446跳过目标的446字节覆盖后64字节。
例如:有一个大与2K的二进制文件fileA。现在想从第64个字节位置开始读取,需要读 取的大小是128Byts。又有fileB, 想把上面读取到的128Bytes写到第32个字节开 始的位置,替换128Bytes,实现如下
dd if=fileA of=fileB bs=1 count=128 skip=63 seek=31 conv=notrun
实用2:
备份:
dd if=/dev/sdx of=/dev/sdy 将本地的/dev/sdx整盘备份到/dev/sdy
dd if=/dev/sdx of=/path/to/image 将/dev/sdx全盘数据备份到指定路径的image文件
dd if=/dev/sdx | gzip >/path/to/image.gz 备份/dev/sdx全盘数据,并利用gzip压缩,保存到指定路径
恢复:
d if=/path/to/image of=/dev/sdx 将备份文件恢复到指定盘
gzip -dc /path/to/image.gz | dd of=/dev/sdx 将压缩的备份文件恢复到指定盘
拷贝内存资料到硬盘:
dd if=/dev/mem of=/root/mem.bin bs=1024 将内存里的数据拷贝到root目录下的mem.bin文件
从光盘拷贝iso镜像
dd if=/dev/cdrom of=/root/cd.iso 拷贝光盘数据到root文件夹下,并保存为cd.iso文件
销毁磁盘数据
dd if=/dev/urandom of=/dev/sda1 利用随机的数据填充硬盘,在某些必要的场合可以用来销毁数据,执行此操作以后,/dev/sda1将无法挂载,创建和拷贝操作无法执行
测试硬盘写速度
dd if=/dev/zero of=/root/1Gb.file bs=1024 count=1000000
测试硬盘读速度