磁盘管理
磁盘简介
磁盘命名
IDE(并口) /dev/hda——基本已经淘汰
sata(串口)
位置——/dev/sda1
——/dev(储存设备的文件)
sda——是一个文件
s——代表sata就是串口
d——代表磁盘
a——代表第一块(a、b、c...)
1——磁盘的分区,1表示第一个分区
磁盘分区类型
MBR(Master Boot Record)——主引导记录,是位于磁盘最前面的一段引导
支持的最大磁盘容量是<2TB。
设计时分配4个分区,如果希望超过4个分区,则需要放弃主分区,改为拓展分区和逻辑分区
命令:fdisk
GPT(GUIDPartition Table)——全局唯一标识分区表,是一个实体硬盘的分区表的结构布局的标准
支持大于2TB,支持128个分区
命令:gdisk
磁盘分区管理
三部曲 分区(MBR/GPT)——>格式化/文件系统 filesystem——>挂载mount
查看磁盘信息
第一种:ll /dev/sd*
第二种:sblk——列出所有块状设备(block文件存储设备文件)
操作步骤
创建分区
MBR类型:fdisk /dev/sdb(磁盘名称)——启动分区工具,进入会话模式
GPT类型:gdisk
(m获取帮助)
选择操作类型:n——划分区 d——删除分区
选择分区类型:p——选择主分区 e——选择扩展分区
选择分区编号:MBR(1~4)、GPT(1~128)
选择磁盘开始的扇区位置——回车(默认)
选择磁盘分区结束的扇区位置(last 扇区)——+2G(分区大小)
显示设置分区的记录,但不生效,可继续划分分区重复步骤
w——输入w保存分区信息,自动退出会话模式
partprobe /dev/sdb——刷新分区表
fdisk -l /dev/sdb——查看磁盘分区,确认是否成功创建
lsblk——查看全部磁盘基本信息
逻辑分区
MBR类型磁盘的分区最多只能有4个主分区,如果想超过4个分区,则必须放弃一个主分区,重新创建扩展分区(不能存放数据,不能格式化和挂载文件),扩展分区相当于在磁盘里又插入了一块磁盘,扩展分区里可创建任意个逻辑分区(不能超过扩展分区的大小),逻辑分区里格式化并挂载文件之后可存放数据。
创建文件系统(格式化)
mkfs.ext4(文件系统类型) /dev/sdb1(要格式化的分区)
mk——make 创造
f——file 文件
s——system 系统
ext4——extend4 扩展
/dev/sdb1——第二串口硬盘第一个分区,进行格式化
手动挂载mount
手动挂载的分区将在系统重启之后消失,存储的文件仍然存在,再次挂载之后将会重新显示
(相当于挂载之后才能看到磁盘文件内容,且重启之后得再次挂载才行)
mkdir /mnt/disk1——创建一个文件
mnt目录一般用于挂载外部设备
mount -t ext4(文件系统类型) /dev/sdb1 /mnt/disk1——把disk1文件挂载到分区
df -hT——可进行查看
被挂载的文件存储的东西会在磁盘储存
永久挂载方法
1、在/etc/fstab文件中添加挂载信息
内容:
分区名 挂载文件 文件系统 挂载选项 dump选项 fsck文件系统检查选项
文件系统:
Linux:ext2,ext3,ext4,xfs,brtfs,zfs
windows:FAT16,FAT32,NTFS
其他:RAMFS(内存文件系统),ISO 9660(光盘),NFS(网络文件系统),
SMBAFS/CIFS(支持Samba协议的网络文件系统),swap(交换分区)
挂载选项:
Async/sync | 设置是否为同步方式运行,默认为async |
---|---|
auto/noauto | 当下载mount -a 的命令时,此文件系统是否被主动挂载。默认为auto |
rw/ro | 是否以以只读或者读写模式挂载 |
exec/noexec | 限制此文件系统内是否能够进行"执行"的操作 |
user/nouser | 是否允许用户使用mount命令挂载 |
suid/nosuid | 是否允许SUID的存在 |
Usrquota | 启动文件系统支持磁盘配额模式 |
Grpquota | 启动文件系统对群组磁盘配额模式的支持 |
Defaults | 同时具有rw,suid,dev,exec,auto,nouser,async等默认参数的设置 |
dump选项:
dump是一个用来作为备份的命令。通常这个参数的值为0或者1
0 | 代表不要做dump备份 |
---|---|
1 | 代表要每天进行dump的操作 |
2 | 代表不定日期的进行dump操作 |
fsck选项:
开机的过程中,系统默认会以fsck检验我们系统是否为完整(clean)。
0 | 不要检验 |
---|---|
1 | 最早检验(一般根目录会选择) |
2 | 1级别检验完成之后进行检验 |
2、在系统自启动文件添加
自启动文件位置:/root/.brshrc ——隐藏文件(使用ls -a查看)
进入文件,在最后一行的位置加入挂载执行命令,系统将会在启动时执行
umount——将挂载文件取消,分区变为未挂载状态 卸载之后文件里面的内容还存在,但是必须再次挂载才能看见文件 卸载文件之后新创建的内容将会在原磁盘分区存储,再次挂载还会出现原来的内容,且新创建的内容不会出现(相当于U盘)
逻辑卷
管理磁盘的一种方式,性质与基本磁盘无异
特点:随意扩张大小,缩减大小,快照备份
PV:物理卷(Physical volume)——相当于一块磁盘
VG:卷组(Volume Group)——相当于一堆磁盘的组合
LV:逻辑卷(Logical Volume)——相当与一个分区
pvs——查看物理卷信息
vgs——查看卷组信息
创建逻辑卷:
lsblk——查看磁盘信息 准备物理磁盘
将物理磁盘转换成物理卷 pvcreate /dev/sdc
创建卷组 vgcreate vg1 /dev/sdc ——vg1是自己设置的卷组名字
创建逻辑卷 lvcreate -L 2G -n lv1 vg1
语法:lvcreate -L大小 -n逻辑卷名字 vg1卷组名字
格式化逻辑卷 mkfs.ext4 /dev/vg1/lv1
创建挂载点 mkdir /mnt/lv1
挂载 mount /dev/vg1/lv1 /mnt/lv1
查看逻辑卷信息 df -hT
完成
卷组扩容vgextend
磁盘转换成物理卷 pvcreate /dev/sdd
查看物理卷信息 pvs
扩展卷组 vgextend vg1 /dev/sdd——(把sdd容量放入卷组)
查看卷组信息 vgs
逻辑卷扩容lvextend
vgs——查看卷组信息,查看vg是否有剩余空间
lvextend -L +2G /dev/vg1/lv1——增加2G空间给lv1(实际操作空间未增加)
df -hT——观察文件系统当前容量
resize2fs /dev/vg1/lv1——文件系统扩容(实际操作空间已增加)
完成
交换分区
swap交换分区——提升内存容量,防止内容溢出——虚拟内存
SWAP就是LINUX下的虚拟内存分区,它的作用是在物理内存使用完之后,将磁盘空间 (也就是SWAP分区)虚拟成内存来使用 。它和Windows系统的交换文件作用类似,但是它是一段连续的磁盘空间,并且对用户不可见。
需要注意的是,虽然这个SWAP分区能够作为"虚拟"的内存,但它的速度比物理内存可是慢多了,因此如果需要更快的速度的话,并不能寄厚望于SWAP,最好的办法仍然是加大物理内存。SWAP分区只是临时的解决办法.
交换分区(swap)的合理值一般在内存的2倍左右?一种流行的、以讹传讹的说法是,安装Linux系统时,交换分区swap的大小应该是内存的两倍。
设置交换分区大小一般为内存的2倍
-
大于4GB小于16GB的内存系统,最小需要4GB的交换空间
-
大于16GB小于64GB的内存系统,最小需要8GB的交换空间
-
大于64GB小于256GB的内存系统,最小需要16GB的交换空间
free -m 查看当前交换分区大小
lsblk 查看全部分区
前步骤与划分磁盘分区一样(不要w保存退出!)
划分分区后,将类型设置为82(按t设置)
partprobe /dev/sde——刷新分区表
mkswap /dev/sde1 格式化交换分区
swapon /dev/sde1 挂载
free -m——验证交换分区是否变大
swapoff /dev/sde1 删除交换分区
文件系统
ext3/ext4——索引文件系统(最大为16TB)—————相当于超市储物柜(包含下面3个)
索引文件系统(index):相当于目录
inode(索引节点)——————————储物柜显示屏(显示可用/已用)
-
记录文件的属性(文件的元数据metadata——大小,权限,属主,属组,连接数,块数量,块编号等)
-
一个文件占用一个inode,同时记录此文件数据所在的block number
-
inode的大小为128bytes(字节)
-
决定文件系统中文件的数量
block(块)——————决定文件系统中文件的大小———————储物柜小格子
-
存储文件的最基本单位
-
存储文件的实际数据
-
实际存储文件的内容,若文件较大,会占用多个block
-
block大小默认为4k
superblock(超级块、块组)——由inode和多个block组成——————相当于一个完整的储物柜
-
block 与inode的总数
-
未使用与已使用的block 与inode的数量
操作
-
ls -i 文件——第一个数字是inode编号信息
-
df -i——显示inode信息
-
ls -l | wc -l——查询文件夹中的文件总数
当inode或者block都满了的时候就无法向文件系统中添加内容了
-
inode数量满了时,无法再创建文件,但可向文件里添加内容
-
block满了时,说明磁盘空间已经满了,无法再添加内容
文件链接
符号链接(软链接)——快捷方式
-
软链接记录的只是源文件的绝对路径,当源文件绝对路径更改,软链接将会不可用
-
文件和目录都可以创建软链接
创建软连接
ln -s 文件1 /home/文件2——在home创建文件1的软链接,命名为文件2
ls -l 文件——查看文件信息
l开头的文件是链接文件
两个文件的内容一样
删除源文件,软链接文件不可用
硬链接
-
只能针对文件做,不能对目录做
-
只能在同一分区做
创建硬链接
ln 文件1 /home/文件2——在home创建文件1的硬链接
ls -l 文件——查看文件信息
删除源文件不会导致硬链接无法使用
RAID磁盘冗余阵列
RAID——廉价磁盘冗余阵列 作用:容错,提高磁盘读写速率
-
RAID0——条带集 2块硬盘以上,读写速率快,没有容错 2块硬盘全部放数据,数据平均大小分开存放
-
RAID1——镜像集 2块磁盘,容量50%用于存放数据,另50%用于备份,读写速率一般,容错高
-
RAID5: 3块硬盘以上,容量大小相同(大小不相同会使每一块硬盘只能使用相当于最小硬盘的容量) 三块数据盘:两块存放数据,一块放算法校验结果
RAID5会根据前面的数据经过算法把得出的结果存放到校验盘,当任意一块数据盘损坏时,校验盘会根据 另一块数据盘经过算法逆推出损坏的数据。
数据盘数量=n-1 n为数据盘数量 一个为校验盘 利用率=(n-1)/n
-
拓展:可加一块热备盘(当其中一块硬盘损坏,立即替代损坏硬盘的位置)
-
可靠性:其中一块硬盘损坏,可以通过算法逆运算回推数据信息
-
硬RAID:需要RAID卡,有自己的cpu,处理速度快,有电池和无电池
-
软RAID:通过操作系统实现,如windows,linux
软RAID操作:
准备多块硬盘{3块数据盘(2块存数据,一块校验盘),一块热备盘}
ls -l /dev/sd*——查看磁盘信息
yum -y install mdadm——确保mdadm命令可用
mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{ b,c,d,e}——创建RAID
-C:创建RAID
/dev/md0:起名,一般在dev目录下创建文件,md+数字
-l5:RAID5
-n3:RAID的成员数量
-x1:热备盘的数量
/dev/sd{ b,c,d,e}:被设置的磁盘
mkfs.ext4 /dev/mdo——格式化
mkdir /mnt/raid5——准备文件
mount /dev/md0 /mnt/raid5——挂载到文件
cp -rf /etc/ /mnt/raid5/etc1——拷贝数据到文件(检查是否能使用)
df -hT——查看磁盘信息
mdadm -D /dev/md0——查看详细信息
模拟硬盘损坏情况
新建终端打开实时观察: watch -n0.5 ‘mdadm -D /dev/md0 |tail -10
mdadm /dev/md0 -f /dev/sdb -r /dev/sdb
数据盘
-f 强制
-r 移除
热备盘会拷贝损坏磁盘的数据并代替损坏磁盘