磁盘存储个文件管理

t01c8d0a587f7a91802

设备文件
I / O端口:I / O设备地址
一切接文件:调用函数open(),read(),write(),close()
设备类型:
块设备:block,存取单位“块”,磁盘
字符设备:字符,存取单位”字符”,键盘
设备文件:关联至一个设备驱动程序,都进而够跟与之对应硬件设备进行通信
设备号码酒店:
主设备号:设备标识类型
次设备号:标识同一类型硬盘接口类型并行:IDE:133MB / s SCSI:640MB / s 串行:SATA:6Gbps SAS:6Gbps USB:480MB / s rpm:旋转(下载的不同设备)
mknod [文件名] [类型] [主要设备号] 每分钟的转速)新加硬盘肯能会导致盘符漂移,绑定UUID磁盘解决漂移机械硬盘(HDD):单块容量大,价格美丽,数据可恢复性高,速度读写慢固态硬盘(SSD ):/ dev / DEV_FILE SCSI,SATA,SAS,IDE,USB:/ dev / sd 虚拟磁盘:/ dev / sd 虚拟磁盘:/ dev / sd 虚拟磁盘: vd 磁盘标识:az,aa,ab ... / dev / sda,/ dev / sdb

















同一设备上的不同分区:1,2,...
/ dev / sda1,/ dev / sda2,......
机械硬盘存储术语:
head:磁头
track:磁道
cylinder:柱面
sector:扇区
磁盘的三围:磁道,柱面,扇区
CHS:
头*扇区*字节*圆柱体= sda
不能超过2T
LBA:
是一个整数,通过转换成CHS格式完成磁盘具体寻址
不能超过128PB
使用磁盘
分区
创建文件系统;格式化
挂载:分配名目录
使用分区空间
设备识别
设备分区
创建³³文件系统-
标记文件系统-
在/ etc / fstab文件中文件创建³³条目
挂载新的文件系统-
分区的目的:
优化I / O性能
实现磁盘空间配额限制
提高修复速度
隔离系统-状语从句:程序
安装多个OS采用
不同文件系统
分区
两个分区方式:MBR,GPT
MBR:使用32位表示扇区数,分区不超过2T
按柱面分区
0磁道0扇区:512字节
446 bytes:boot loader(启动加载器;相当于Windows的主引导记录)
64bytes:分区表
16bytes:标识一个分区
2bytes:55AA(分区标识位)
4个主分区:三个主分区+一个扩展分区)
备份分区表
dd if = / dev / sda of = / data / mbr_bak bs = 1 count = 512
恢复分区表
dd if = mbr_bak of = / dev / sda
分区表克隆
dd if = / dev / sda of = / dev / dev / sdb bs = 1 count = 512(两块磁盘容量必须相同)清除
55AA
dd if = / dev / sda = / dev / sda bs = 1 count = 2 skip = 510
清除后系统不会识别分区表
分区表在硬盘和内存中各存一份
的fdisk -查看硬盘中的分区表
lsblk查看内存中的分区表
GPT:支持128个分区,使用64位,支持8Z,64Z
使用128位UUID表示磁盘和分区GPT分区表自动备份在头和尾两份,并有CRC校验位
BIOS + MBR
UEFI + GPT
fdisk创建MBR格式分区
gdisk创建GPT格式分区
parted高级分区操作
parted / dev / sdb mklabel gpt | msdos把磁盘转换成MBR或GPT
parted / dev / sdb mklabel 1 1000给磁盘分区
parted / dev / sdb prin查看磁盘分区
parted / dev / sdb rm 1删除分区
parted -l列出分区信息
parted及时生效,不可撤回
gdisk / dev / sdb类fdisk的GPT分区工具
fdisk -l [-u] [device ...]查看分区
fdisk / dev / sdb管理分区
-c以扇区为单位划分分区
子命令:
p分区列表
t更改分区类型
n创建新分区
d删除分区
v校验分区
u转换单位
w保存并退出
q不保存并退出
partx -a [磁盘路径] centos6增加分区时使用,同步分区列表
partx -d -nr [删除的分区号] [磁盘路径] centos6增加分区时使用,同上
partprobe centos7同步分区表
查看内核是否已识别新的分区:
cat / proc / partations
文件系统:
Linux文件系统:ext2(扩展文件系统),ext3,ext4,xfs(SGI),btrfs
(Oracle),reiserfs,jfs(AIX),swap
光盘:iso9660
Windows:FAT32,exFAT,NTFS
Unix:FFS(快速), UFS(unix),JFS2
网络文件系统:NFS,CIFS
集群文件系统:GFS2,OCFS2(oracle)
分布式文件系统:fastdfs,ceph,moosefs,mogilefs,glusterfs,Lustre
RAW:未经处理或者未经格式化产生的文件系统
文件系统分类
根据其是否支持“日志”功能:
日志型文件系统:ext3,ext4,xfs,...
非日志型文件系统:ext2,vfat
文件系统的组成部分:
内核中的模块:ext4,xfs ,vfat
用户空间的管理工具:mkfs.ext4,mkfs.xfs,mkfs.vfat
Linux的虚拟文件系统:VFS
查找支持的文件系统:cat / proc / filesystems
buffer根据写操作,在内存上写完暂存内存,空闲时间在存到磁盘
cache根据读操作,磁盘的高速缓存,读过的文件临时存放,以便于再次访问
mkfs命令
mkfs。[文件系统] [分区路径]
ext4
xfs
btrfs
vfat
... ..
mkfs -t [文件系统] [分区路径]
-m指定保留空间的百分比
-i为数据空间中每多少个字节创建一个inode,此大小不能小于block大小
-b指定块大小
-N指定分区中创建多少个inode
-l inode记录占用的磁盘空间大小
-m#:默认5%,为管理人员预留空间占用空间的百分比
-O FEATURE [,...]:启用指定特性
- O ^ FEATURE:关闭指定特性
-L卷标
-j将ext2升级为ext3
blkid [分区路径]查看块设备的文件系统和UUID
tune2fs -l [分区路径]查看ext系列的特性
-U  uuidgen [分区路径]更改UUID
tune2fs -o acl [分区路径]在centos6上给该分区的文件系统添加acl特性
fsck [分区路径] -y修复文件系统(修复逻辑上的损坏,自动判断文件系统)
e2fsck -f [分区路径]检查文件系统是否有损坏
检查或修复文件系统时不能处理挂载状态,用umount解除挂载状态
e2label [分区路径] [卷标名]修改卷标
findfs [UUID]查找分区
uuidgen生成 随机UUID
挂载安装
将文件系统关联到现有的目录上,使得此目录作为其他文件访问入口的行为
一个挂载点同时只能挂载一个设备,设备一个可以挂载到多个挂载点
挂载点最好是空文件夹,否则文件夹中的数据会看不到
添加SWAP分区
fdisk:创建一个新分区(最好从零磁道开始)
mkswap [设备名]
UUID swap defaults 0 0
swapon -a [设备名]
添加成功
swapon -a [设备名]自动挂载swap分区
-s查看交换分区(等同于cat / proc / swaps)
swapoff [设备名]卸载swap分区
mount [设备名] [挂载点]
-a:自动挂载的所有支持自动挂载的设备(定义在了/ etc / fstab文件中,且挂载选项中有自动功能)
-r以只读的格式挂载
-w以读写的格式挂载
-L以卷标指定挂载设备
-U以UUID指定挂载设备
-t指定文件系统挂载(系统可以自动识别,然并卵)
-n隐藏挂载(悄悄的挂载只能在/ PROC /坐骑下看到,对centos7无效)
-B把文件挂载到另一个文
-o选项:(挂载文件系统的选项),多个选项使用逗号分隔
异步:异步模式
同步:同步模式,内存更改时,同时写磁盘
的atime / noatime的:包含目录和文件
diratime / nodiratime:目录的访问时间戳
自动/ NOAUTO:是否支持自动挂载,是否支持-a选项
的exec / NOEXEC:是否支持将文件系统上运行应用程序
开发/ nodev:是否支持在此文件系统上使用设备文件
SUID / nosuid参数:是否支持SUID和sgid的权限
重新装入:重新挂载
RO:只读
RW:读写
用户/ nouser:是否允许普通用户挂载此设备,/ etc / fstab中使用
acl:启用此文件系统上的acl功能
loop:使用loop设备
umount [挂载点]解除挂载
lsof -v [挂载点]查看谁在使用该挂载点
fuser -v同上
fuser -km [挂载点]强制卸载
findmnt [目录]查看是否为挂载点,用于脚本
losetup -a查看循环设备
centos6上循环设备默认只有八个使用更多时要更改/boot/grub/grub.conf文件
centos7上循环设备是自动创建的,所以理论上说是没有上限的
/ etc / fstab中行每一个定义要挂载的文件系统-
要挂载的设备或伪文件系统-
挂载点
文件系统-类型
挂在选项对话:帝发 ULTS
转储频率:0:不备份1:每天备份一次2:每隔一天备份一次
自检次序:0:不自检1:首先自检;一般只有rootfs才用
/ etc / fstab格式中最后面的两个零依次表示1.备份周期,配合特点软件使用2.开机检测顺序(0不检测1第一个检测2第二个检测)
/ etc / fstab中最后一个为检测时,挂载设备有问题开机启动故障,挂载点有问题,可以正常启动,
挂载设备故障解决方案
开机过程系统提示Ctrl + D或输入root用户密码,Ctrl + D表示重启,选择输入密码
用mount -o rw,remount /给/读写权限,更改/ etc / fstad中的故障挂载
备份/ home /
fdisk
mkfs.ext4 / dev / sda6 -L / home
mkdir / mnt / home; mount / dev / sda6 / mnt / home
init 1会断网,不要远程操作
cp -av / home / * / mnt / home
rm -rf / home *
vim / etc / fstab
UUID = XXX / home ext4 defaults 0 0
mount -a
umount / mnt / home; rm -rf / mnt / home
init 5
使用光盘
弹出光盘
创建ISO文件
cp / dev / sr0 /data/centos.iso
mkisofs -r -o /data/centos.iso / dev / sr0
dd if = / dev / sr0 of = / data / centos.iso
可以吧centos6的两张光盘和成一个iso当yum源使用,但不能用于启动盘
刻录光盘
wodim -v -eject centos.iso
df查看文件系统空间占用等信息
-H以1000为单位
-T文件系统类型
-h:以1024为单位
-i:inode代替块
-P:以Posix兼容的格式输出
du查看目录总体空间占用状态
-h以人能看懂的格式
-s不看子目录,只看总大小
-max-depth最大深度
dd命令:
用法:
dd if = / PATH / FROM / SRC of = / PATH / TO / DEST
bs =#:block size,复制单元大小
count =#:复制多少个bs
of = file写到所命名的文件而不是到标准输出
if = file从所命名文件读取而不是从标准输入
bs = size指定块大小(既是是ibs也是obs)
ibs = size一次读大小个字节
obs = size一次写大小个字节
cbs =大小一次转化大小个字节
跳过=块从开头忽略块个IBS大小的块
寻求=块从开头忽略块个观测值大小的块
计数= N只拷贝Ñ个记录
CONV =转化[,转换...]用指定的参数转换文件
转换参数:
ASCII转换EBCDIC为ASCII
EBCDIC转换ASCII为EBCDIC
LCASE把大写字符转换为小写字符
UCASE把小写字符转换为大写字符
nocreat不创建输出文件
NOERROR出错时不停止
notrunc之外不截断输出文件
同步把每个输入块填充到IBS个字节,不足部分用空(NUL)字
符补齐
复制硬盘分区表
DD如果=的/ dev / SDB =的/ dev / SDD BS = 1个计数= 66跳过= 446寻求= 446
测试硬盘写速度
DD如果= / dev / zero of = / root / 1Gb.file bs = 1024 count = 1000000
测试硬盘读速度
dd if = / root / 1Gb.file bs = 64k | dd = / dev / null
修复硬盘
dd if = / dev / sda of = / dev / sda
RAID磁盘阵列
多个磁盘合成一个阵列来提供更好的性能,冗余或者两者都提供
提高IO性能
parallel-读写
提高耐用性
磁盘冗余
RAID实现的方式:
外接式磁盘阵列:扩展通过卡提供适配能力
内接式RAID:主板集成RAID控制器
安装OS前在BIOS配置里
软件RAID:通过OS实现
RAID-0:条带卷,被汉语中类似的条称为带集
最少两块硬盘或者两块以上
读写性能提高
无容错能力
RAID-1:镜像卷,两两它的镜像就是互为
最少两块硬盘
读性能提高,性能写不变
有容错能力,但不能防止误操作
RAID-4:一块盘是校验位读写平凡容易故障(淘汰)
最少三块磁盘或三块以上
读写性能提高
有容错能力
容量ñ -1 / N
RAID-5:校验位分布在三块磁盘上,坏掉一块磁盘后读写速度变慢(校验引起)
最少三块磁盘或三块以上
读写性能提高
有容错能力
利用率正1 / n的
备用磁盘热备盘
RAID-6:校验位分布在四块磁盘上,坏掉一块磁盘后读写速度变慢(校验引起)
最少三块磁盘或三块以上
读写性能提高
有容错能力
利用率n-2 / n
RAID7
可以理解为一个独立存储计算机,自身带有操作系统和管理工具,可以独立运行,理论上性能最高的RAID模式
RAID-10
容错率比01高
RAID-01
RAID-50
RAID-60
JBOD:将多块磁盘的空间合并一个大的连续空间使用
mdadm为软RAID提供管理界面
-C指定路径
-a是
初始化-l5指定raid级别
-c指定chunk大小
chunk:吧一个文件切割成若干个小块,一块就是一个chunk
创建raid配置文件
mdadm -Ds / dev / md0> /etc/raid.conf
逻辑卷管理
允许对卷进行方便操作的抽象层,包括重新设置文件系统的大小
允许在多个物理设备间重新组织文件系统
创建逻辑卷
添加新硬盘
echo' - - - '> / sys / class / scsi_host / host2 / scan开机加硬盘刷新硬盘信息
fdisk et 8e(指定扩展分区,文件系统为8e LVM)
pvs查看逻辑磁盘信息
vgcreate -s [PE大小] [逻辑磁盘名称] [新创建的分区]
使用lvcreate -n [名称] -l \ L [PE \容量] [逻辑磁盘]
-l 100%免费分区剩余
跨中主机迁 卷组示例:
原计算机:vgrename vg0 centos6vg0
lvrename / dev / centos6vg0 / lv0 / dev / centos6vg0 / lv0
1在旧系统中,umount所有卷组上的逻辑卷:umount / mnt / lv0
2 vgchange -an centos6vg0 //禁用巻组lvdisplay查看
3 vgexport cebtos6vg0导出逻辑卷pvscan查看vgdisplay查看
4拆下旧硬盘
在目标计算机上
新系统中安装旧硬盘,并导入vgimport centos6vg0。
vgchange -ay centos6vg0 //激活巻组
安装所有巻组的上的逻辑卷
使用分区创建逻辑卷示例:
创建分区fdisk / dev / sdc(np 1 1 + 2G t 1 8e)
创建物理卷:pvcreate / dev / sd {b1,c1}
显示pv信息:pvs:简要pv信息显示pvdisplay
为卷组分配物理卷:vgcreate -s 16M vg0 / dev / sd {b1,c1}
显示卷组:vgs或vgdisplay
从卷组创建逻辑卷:lvcreate -L 256M -n lv0 vg0
显示逻辑卷:lvs或Lvdisplay
创建文件系统:mkfs.ext4 / dev / vg0 / lv0
make2fs -j / dev / vg0 / data
挂载:写入文件:UUID = xxx / mnt / lv0 ext4 defaults 0 0
mount / dev / vg0 / data / mnt / data(临时有效)
扩展逻辑卷
pvcreate / dev / sdd
vgextend vg0 / dev / sdd
lvextend -L [+ 10G \ 30G] [逻辑卷]
resize2fs [逻辑卷]或lvextend - r -L [+ 10G \ 30G] [逻辑卷] 同步文件系统缩减
逻辑分区
1.取消挂载
umount
2.检查文件系统完整性
fsck -f
3.缩减文件系统
resize2fs
4.
缩减逻辑分区lvreduce -L [缩减大小] [逻辑分区]
5.
挂载mount
删除VG中的PV
pvmove / dev / sdd
vgreduce vg0 / dev / sdd
pvremove / dev / sdd
逻辑卷快照管理
只能存最老版本的数据(多用于测试环境)
lvcreate -n lv0-snapshot -s -L 5G -pr / dev / vg0 / lv0
-pr只读属性
如果不加只读属性,恢复快照时会失败,需要手工复制过去(ext4)
xfs不影响,不加也能同步
恢复快照
把源分区和快照分区都卸载掉
lvconvert -merge / dev / vg0 / lv0-snapshot

猜你喜欢

转载自blog.csdn.net/qq_35242906/article/details/80293168
今日推荐