磁盘和文件系统管理
磁盘结构及分区
磁盘结构
硬盘存储容量=磁头数×磁道(柱面)数×每道扇区数×每个区域的字节数 柱面磁头扇区域可用于定位磁盘上的每个区域 磁盘接口类型:IDE、SATA、SCSl、SAS、光纤通道
磁盘分区
MBR
表示主导记录(MBR:Master Boot Record) MBR位于硬盘第一物理扇区,MBR它包括硬盘主导程序和硬盘分区表。分区表有4个分区记录区,每个分区记录区占16个字节
磁盘分区结构
硬盘主分区只有4个 主分区和扩展分区的序号限制在1~4 扩展分区分为逻辑分区 逻辑分区的序号将始终从5开始
文件系统类型
XFS文件系统 分区存储文件和目录数据,高性能日志文件系统,CentOS7系统中默认使用的文件系统。
SWAP,交换文件系统 为Linux系统建立交换分区
Linux其他文件系统类型支持 FAT16、sFAT32、NTFS EXT4、JFS
磁盘和分区的管理
检测并确认新硬盘
fdisk命令:检查或管理磁盘分区 fdisk -l [磁盘设备] 或 fdisk[磁盘设备] 交互模式中常用的说明: m、p、n、d、t、w、q
m#输入m指令
a #设置引导标记 b #修改bsd的磁盘标签 c #设置DOS操作系统兼容标记
o#创造新的空白DoS分区表
s#创造新的空白Sun磁盘标签
u#变更显示记录单位 v#验证磁盘分区表 w#保存修改结果并退出fdisk程序 x不建议初学者使用特殊功能
管理文件系统
装卸文件系统
df -hT#查看挂载信息
mount命令
挂载文件系统,SO镜像到指定文件夹
mount[-t类型] 存储设备 挂载点目录 mount-o loop ISO镜像文件 挂载点目录
mount:临时挂载
umounti命令
卸载已挂载的文件系统 umount存储设备的位置 umount挂载点目录
lsblk #查看详细信息
blkid(块设备) /dev/sdb1
#查看UUID
vim /etc/fstab
#进入文件系统列表
UUTD=2a740657-a827-4a7b-8b30-a502b7255cb3 /home xfs defaults 0 0
在/etc/fstab 在文件中,每行记录一个分区或设备的挂载配置信息,从左到右包含六个字段(使用空间或制表符隔),每个部分的含义如下。 /dev/sdb1 /home xfs defaults 0 0 第一段:设备名或设备卷标名。 二字段:文件系统挂载点目录的位置。 第三段:文件系统类型,如XFS、Swap等。 第四段:挂载参数,即mount命令"-o"可用于选项后的参数。defaults、rw、ro、noexec默认参数、可写、只读、禁用执行程序分别表示。 第五字段:表示文件系统是否需要dump备份(dump它是一种备份工具)。一般设表示需要,设为0时表示需要dump忽略。 第6字段:该数字决定在系统启动时进行磁盘检查的顺序。0表示不进行检查,1表示优先检查,2表示其次检查。根分区应设为1,其他分区设为2。
通过在/etc/fstab在文件中添加相应的挂载配置,可实现启动后指定的自动挂载分区。
mount -a#刷新
创建文件系统(格式化)
mkfs.xfs /dev/sdbl和mkfs -t xfs /dev/sdbl SWAP创建系统文件 mkswap /dev/sdb5#创建分区 swapon是开启swap 注:/dev/sdb2(swap分区) swapoff是关闭swap 注:/dev/sdb2(swap分区) swapon -s#检查每个分区swap状态信息 free -m#查看总的swap状态信息,利用率占比。
FAT32创建系统文件
mkfs -t vfat -F 32 /dev/sdb6 或 mkfs.vfat -F 32 /dev/sdb6 mkfs -t xfs /dev/sdb1
LVM与磁盘配额
Logical Volume Manager(LVM),逻辑卷管理
磁盘容量可以在保持现有数据不变的情况下动态调整,从而提高磁盘管理的灵活性。 boot分区用于存储指导文件,不能基于LVM创建。LVM可操作对象:①完整的磁盘②分区完整。
PV(物理卷 )磁盘的最小单元是PE=4M VG(卷组) LV(逻辑卷)
流程:
1)硬盘分区 fdisk /dev/sdb fdisk /dev/sdc 2)创建物理卷sdb1 sdc1 [root@kgc ~]pvcreate /dev/sdb1 /dev/sdc1 Physical volume "/dev/sdb1"successfully created. Physical volume "/dev/sdcl"successfully created. 3)创建卷组mail store web_kgc(卷组名) vgcreate mail store /dev/sdbl /dev/sdcl [root@kgc ~]vgcreate web_kgc /dev/sdb1 /dev/sdc1 Volume group "web kgc"successfully created
4)创建逻辑卷磁盘分区 lvcreate -L 容量大小 -n 逻辑卷名 卷组名 lvcreate -L 10G -n [root@kgc ~]lvcreate -L 10G -n njzb web_kgc Logical volume "njzb"created.
5)创建文件系统 mkfs.xfs /dev/web kgc/njzb
7)挂载目录/mai1box mount /dev/web kgc/njzb /home
vim /etc/fstab挂载点
永久挂载 [root@kgc /]echo "/dev/web kgc/njzb
再扩容 echo “—”/sys/class/scsi host/host1/scan vgextend vgname1 /dev/sdc2 lvextend -L 10G /dev/vgname1/1vnamel xfs_growfs /dev/vgname1/1vname1//刷新xfs文件系统容量
resize2fs /dev/vgname1/1vname1//刷新ext4类型文件系统容量
df -hT#查看挂载信息
补充:##强制解载 umount -f /data ##查看占用过程 fuser -cu /datal/img #杀死进程 kil1 -9 pid
磁盘配额概述
磁盘配额的本质是基于Linux操作系统功能 控制方向包括两种资源限制手段:在指定目录下,指定用户身份允许创建文件数量和磁盘空间大小。
控制对象有两部分: ①目录 ②用户身份 控制手段(上限): ①文件数量 ②磁盘空间 管理类型控制(软限制、硬限制)
总的来说,磁盘配额能防止某些个体用户使用文件系中不允许使用的那部分,以防造成系统拥堵,尽管目前只能在XFS文件系统中饭设置,但对解决磁盘的空间满额问题有着很大的帮助,由于1iux系统是多人多任务的环境,所以会有多人共同使用一个硬盘空间的情况发生。如果其中有少数几个用户占用了硬盘空间的话,那势必压缩其他用户的使用权利。因此管理员应该适当地限制用户的硬盘容量,以妥善分配系统资源,避免有人抗议。
实现磁盘限额的条件:需要Linux内核支持,安装xfsprogs与quota软件包 Linux磁盘限额的特点: 作用范围:针对指定的文件系统(分区) 限制对象:用户帐号、组帐号 限制类型:磁盘容量、文件数量 限制方法:软限制、硬限制
磁盘限额的特点
1.磁盘配额的作用范围 xfs quota设置的磁盘配额功能,只在指定的文件系统(分区)内有效,用户使用其他未设置配额的文件系统时,将不会受到限制。 2.磁盘配额的限制对象 xfs_quota 主要针对系统中指定的用户账号、组账号进行限制,没有被设置限额的用户或组将不受影响。对组账号设置配额后,组内所有用户使用的磁盘容量、文件数量的总和不能超过限制。 3.磁盘配额的限制类型 磁盘容量:限制用户能够使用的磁盘数据块(B1ock)大小,也就是限制磁盘空间大小,默认单位为KB。 文件数量:限制用户能够拥有的文件个数。在工iux操作系统中,每一个文件都有一个对应的数字标记,称为i 结点(Iode)编号,这个编号在同一个文件系统内是唯一的,因此xfs quota通过限制i结点的数量来实现对文件数量的限制。 4.磁盘配额的限制方法 软限制:指定一个软性的配额数值(如480MB磁盘空间、180个文件),在固定的宽限期(默认为七天)内允许暂时超过这个限制,但系统会给出警告信息。 硬限制:指定一个硬性的配额数值(如500MB磁盘空间、200个文件),是绝对禁止用户超过的限制值,当达到硬限制值时,系统也会给出警告并禁止继续写入数据。硬限制的配额值应大于相应的软限制值,否则软限制将失效。 从以上描述中可以看出,在实施磁盘配额的实际过程中,只有当用户(或组)、文件系统(分区)及配额数值都满足限额条件时,fs quota才会对操作进行限制。
cent0S7中设置磁盘配额步骤:
1、检查是否己安装xfsprogs和xfs quota软件包 rpm -q xfsprogs quota yum install -y xfsprogs quota 2、以支特配额功能的方式挂载文件系统 umount /dev/vgname1/1vnamel mount -o usrquota,grpquota /dev/vgname1/1vnamel /opt
#添加挂载参数"usrquota,grpquota"用于增加对用户、组配额功能的支持 或者 vim /etc/fstab /dev/vgnamel/1vname1 /opt xfs defaults(默认权限),usrquota(文件所属用户quota),grpquota 00 umount /dev/vgname1/lvnamel mount -a#-a选项,将/etc/fstab的所有内容重新加载 注:增强型安全功能关闭如果是6的话磁盘配额是不能写入数据的
setenforce 0
3、编辑用户和组账号的配额设置 useradd lisi echo “123” | passwdd --stdin lisi xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M isoft=8 ihard=10 lisi’ /opt/ -x:表示启动专家模式,在当前模式下允许对配额系统进行修改的所有管理命令可用。 -c:表示直接调用管理命令(command)。 -u:指定用户账号对象 -g:指定组账号对象 bsoft:设置磁盘容量block的软限制数值(默认单位为KB)。 bhard:设置磁盘容量的硬限制数值(默认单位为KB)。 isoft:设置磁盘文件数的软限制数值。 ihard:设置磁盘文件数的硬限制数值。
#仅限制磁盘容量 xfs_quota -x -c ‘limit -u bsoft=80M bhard=100M lisi’ /njzb xm/ #仅限制文件数 xfs_quota -X -c ‘limit -u isoft=4 ihard=5 lisi’ /njzb xm/ #查看lisi磁盘:容量限制 xfs_quota -c ‘quota -uv lisi’ /njzb xm/ #查看zhangsan文件数限制 xfs_quota -c ‘quota -i -uv lisi’ /njzb xm/
查看磁盘配额 report常用选项: -u:对用户查看 -g:对组查看 -a:查看所有可用分区的配额使用报告 -b:查看磁盘容量 -i:查看文件数
4、险证磁盘配额功能 chmod 777 /njzb xm Su lisi cd /njzb xm #验证磁盘容量超限 dd if=/dev/zero of=/data/kgc.txt bs=10M count=12 #验证磁盘文件数超限 touch {aa,bb,cc,dd,ee,ff}.txt touch test{1…6}.txt dd命令是一一个设备转换和连续复制命令 "if=”指定输入设备(或文件) "of="指定输出设备(或文件) "bs="指定读取数据块的大小 "count="指定读取数据块的数量 /dev/zero"零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件。 5、查看配额使用情况 #查看所有可用分区的磁盘容量配额使用情况 xfs quota -x -c 'report -aibh’jh
f=/data/kgc.txt bs=10M count=12 #验证磁盘文件数超限 touch {aa,bb,cc,dd,ee,ff}.txt touch test{1…6}.txt dd命令是一一个设备转换和连续复制命令 "if=”指定输入设备(或文件) "of="指定输出设备(或文件) "bs="指定读取数据块的大小 "count="指定读取数据块的数量 /dev/zero"零"设备文件,可以无限的提供空字符。常用来生成一个特定大小的文件。 5、查看配额使用情况 #查看所有可用分区的磁盘容量配额使用情况 xfs quota -x -c 'report -aibh’jh