运维|磁盘管理-扩容swap空间+磁盘配额+软硬链接
磁盘管理-补充扩展
扩容swap空间
添加磁盘扩容
流程:新建分区–>刷新分区表–>格式化–>激活
查看信息
[root@server1 ~]# free -h
totalusedfreesharedbuff/cacheavailable
Mem:1.8G147M1.2G9.6M410M1.5G
Swap:2.0G0B2.0G
[root@server1 ~]# swapon -s
文件名类型大小已用 权限
/dev/dm-1partition 20971480-2新建分区(使用sdb2作为交换空间)
[root@server1 ~]# fdisk /dev/sdb
#欢迎使用 fdisk (util-linux 2.23.2)。#更改将停留在内存中,直到您决定将更改写入磁盘。
#使用写入命令前请三思。#命令(输入 m 获取帮助):n
Partition type:
pprimary (1 primary, 0 extended, 3 free)
eextended
Select (default p): p
#分区号 (2-4,默认 2):
#起始 扇区 (4196352-10485759,默认为 4196352):
#将使用默认值 4196352
#Last 扇区, +扇区 or +size{K,M,G} (4196352-10485759,默认为 10485759):+2G
#分区 2 已设置为 Linux 类型,大小设为 2 GiB#命令(输入 m 获取帮助):w
The partition table has been altered!Calling ioctl() to re-read partition table.
#正在同步磁盘。
[root@server1 ~]# lsblk
NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT
sda8:0020G0 disk
├─sda18:101G0 part /boot
└─sda28:2019G0 part
├─centos-root 253:0017G0 lvm/
└─centos-swap 253:102G0 lvm[SWAP]
sdb8:1605G0 disk
├─sdb18:1702G0 part
└─sdb28:1802G0 part
sr011:01973M0 rom刷新分区表
[root@server1 ~]# partprobe /dev/sdb格式化
[root@server1 ~]# mkswap /dev/sdb2
#正在设置交换空间版本 1,大小 = 2097148 KiB
#无标签,UUID=ce1f363b-a131-41d0-9123-345978b1e95e
[root@server1 ~]# blkid /dev/sdb2
/dev/sdb2: UUID="ce1f363b-a131-41d0-9123-345978b1e95e" TYPE="swap" 临时激活swap分区(swapoff临时关闭)
[root@server1 ~]# swapon /dev/sdb2
[root@server1 ~]# swapon -s
文件名类型大小 已用 权限
/dev/dm-1partition 2097148 0 -2
/dev/sdb2partition 2097148 0 -3永久激化
[root@server1 ~]# vim /etc/fstab
#追加
/dev/sdb2swapswapdefaults00
dd命令模拟大文件来扩容
dd用法
dd if=源文件 of=目标文件 bs=复制数据的大小 count=复制的个数常用示例
1.备份设备文件
[root@server1 ~]# dd if=/dev/sr0 of=/centos7.6.iso
记录了1992704+0 的读入
记录了1992704+0 的写出
1020264448字节(1.0 GB)已复制,31.5341 秒,32.4 MB/秒2.模拟大文件
#/dev/zero 特殊设备,一般用来模拟一个大文件,源源不断的二进制的bit流;
[root@server1 ~]# dd if=/dev/zero of=/tmp/swap_file bs=1M count=1024
记录了1024+0 的读入
记录了1024+0 的写出
1073741824字节(1.1 GB)已复制,2.74676 秒,391 MB/秒3.损坏系统盘(不要作死)
[root@server1 ~]# dd if=/dev/zero of=/dev/sda bs=1 count=512
模拟大文件扩容
模拟大文件
[root@server1 ~]# dd if=/dev/zero of=/tmp/swap_file bs=1M count=1024
#记录了1024+0 的读入
#记录了1024+0 的写出
#1073741824字节(1.1 GB)已复制,2.74676 秒,391 MB/秒格式化
[root@server1 ~]# mkswap /tmp/swap_file
#正在设置交换空间版本 1,大小 = 1048572 KiB
#无标签,UUID=b2d34da8-3388-4094-9a83-af6a6fe40cf3激活
[root@server1 ~]# swapon -p 1 /tmp/swap_file
swapon: /tmp/swap_file:不安全的权限 0644,建议使用 0600。
[root@server1 ~]# chmod 0600 /tmp/swap_file 查看
[root@server1 ~]# free -h
totalusedfreesharedbuff/cacheavailable
Mem:1.8G149M72M9.6M1.6G1.5
Swap:5.0G0B5.0G
磁盘配额案例
- 作用:限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…
- 案例要求:
- 创建3个用户user1,user2,user3,密码和用户名相同,初始组为usergrp组。
- 3个用户都可以取得500M的磁盘使用空间,超过400M,给予提示。文件数量不能多于5个,超过3个,给予提示
创建分区sdb1
[root@server1 ~]# fdisk /dev/sdb
#命令(输入 m 获取帮助):n
Partition type:
pprimary (0 primary, 0 extended, 4 free)
eextended
Select (default p):
Using default response p
#分区号 (1-4,默认 1):
#起始 扇区 (2048-10485759,默认为 2048):
#将使用默认值 2048
#Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759):+2G
#分区 1 已设置为 Linux 类型,大小设为 2 GiB
#命令(输入 m 获取帮助):w
Calling ioctl() to re-read partition table.
#正在同步磁盘。刷新分区表
[root@server1 ~]# partprobe /dev/sdb
[root@server1 ~]# lsblk
NAMEMAJ:MIN RMSIZE RO TYPE MOUNTPOINT
sda8:0020G0 disk
├─sda18:101G0 part /boot
└─sda28:2019G0 part
├─centos-root 253:0017G0 lvm/
└─centos-swap 253:102G0 lvm[SWAP]
sdb8:1605G0 disk
└─sdb18:1702G0 part
sr011:01973M0 rom格式化
[root@server1 ~]# mkfs.ext4 /dev/sdb1挂载
[root@server1 ~]# mkdir /mnt/mount_sdb1
[root@server1 ~]# mount /dev/sdb1 /mnt/mount_sdb1/
[root@server1 ~]# df -Th
文件系统类型容量已用可用 已用% 挂载点
devtmpfsdevtmpfs899M0899M0% /dev
tmpfstmpfs910M0910M0% /dev/shm
tmpfstmpfs910M9.6M901M2% /run
tmpfstmpfs910M0910M0% /sys/fs/cgroup
/dev/mapper/centos-root xfs17G1.9G16G11% /
/dev/sda1xfs1014M194M821M20% /boot
tmpfstmpfs182M0182M0% /run/user/0
/dev/sdb1ext42.0G6.0M1.8G1% /mnt/mount_sdb1创建用户
[root@server1 ~]# groupadd usergrp
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user01
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user02
[root@server1 ~]# useradd -g usergrp -b /mnt/mount_sdb1/ user03确保文件系统支持配额
[root@server1 ~]# mount |grep mount_sdb1
/dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,data=https://www.it610.com/article/ordered
[root@server1 ~]# mount -o remount,usrquota,grpquota /mnt/mount_sdb1/
[root@server1 ~]# mount |grep mount_sdb1
/dev/sdb1 on /mnt/mount_sdb1 type ext4 (rw,relatime,quota,usrquota,grpquota,data=ordered)永久支持
[root@server1 ~]# vim /etc/fstab
/dev/sdb1/mnt/mount_sdb1 ext4 defaults,usrquota,grpquota00启动quota磁盘配额
[root@server1 ~]# yum install -y quota
[root@server1 ~]# quotacheck -acug
选项说明:
-a:所有分区(已支持配额)
-c:创建
-u:用户
-g:组
[root@server1 ~]# ll /mnt/mount_sdb1/
总用量 44
-rw------- 1 rootroot7168 8月21 12:12 aquota.group
-rw------- 1 rootroot7168 8月21 12:12 aquota.user
drwx------ 2 rootroot16384 8月21 12:06 lost+found
drwx------ 2 user01 usergrp4096 8月21 12:07 user01
drwx------ 2 user02 usergrp4096 8月21 12:07 user02
drwx------ 2 user03 usergrp4096 8月21 12:07 user03
[root@server1 ~]# quotaon -a编辑限额配置
[root@server1 ~]# edquota -u user01
Disk quotas for user user01 (uid 1001):
Filesystemblockssofthardinodessofthard
/dev/sdb1164096005120004810soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
hard:又称硬限制,到达这个限制,就完全禁止任何写入以下三个为磁盘空间的限制设置:
blocks:已使用空间,无需要设置
soft:用户空间使用限制,为软限制,需要设置
hard:用户空间使用限制,为硬限制,需要设置
以下三个为总文件个数的限制:
inodes:已有文件总数,无需要设置(文件总数限制,如上述创建8-4=4个文件会提醒,只允许创建10-4=6个文件)
soft:文件总数限制,为软限制,需要设置
hard:文件总数限制,为硬限制,需要设置注:空间限制是以k为单位的。
[root@server1 ~]# edquota -p user01 -u user02
[root@server1 ~]# edquota -p user01 -u user03查看限制情况
[root@server1 ~]# repquota -as
*** Report for user quotas on device /dev/sdb1
Block grace time: 7days;
Inode grace time: 7days
Space limitsFile limits
Userusedsofthardgraceusedsofthardgrace
----------------------------------------------------------------------
root--20K0K0K200
user01+-451M400M500M7days5810
user02--16K400M500M5810
user03--16K400M500M4810测试
[user01@server1 ~]$ dd if=/dev/zero of=bigfile bs=1M count=450
sdb1: warning, user block quota exceeded.
记录了450+0 的读入
记录了450+0 的写出
471859200字节(472 MB)已复制,7.2745 秒,64.9 MB/秒[user02@server1 ~]$ touch file{
1..6}
sdb1: warning, user file quota exceeded.
[user02@server1 ~]$ touch file7
sdb1: write failed, user file limit reached.
touch: 无法创建"file7": 超出磁盘限额
软硬链接 硬链接
inode介绍
- 假如我有一块500G的硬盘,将其格式化后会分文三个部分:超级块(superblock),索引节点(inode),数据块(block)
- 超级块(superblock):会存放文件系统(filesystem)的整体信息,包括inode/block的总量、使用量、剩余量, 以及文件系统的格式与相关信息等
- 索引节点(inode):记录文件的属性,如文件的权限,大小,修改时间,所有者等等。一个文件占用一个inode,同时记录此文件的数据所在的block 号码,默认一个inode表格128字节,一个block记录消耗4B,记录满了后会新建inode用于扩展。
- 数据块(block):真正用于存放数据
- 如果我要查看file1文件内容,系统并不是按照文件名去查找,而是根据inode去查找。
具体流程:打开file1–>查看inode–>找到inode对应的数据块–>读取硬链接概述
查看文件的inode [root@server1 tmp]# ll -i 总用量 0 16784325 -rw-r--r-- 1 root root 0 8月21 12:11 file1 查看文件系统的inode所占空间大小 [root@server1 tmp]# df -ih 文件系统Inode 已用(I) 可用(I) 已用(I)% 挂载点 devtmpfs225K399225K1% /dev tmpfs228K1228K1% /dev/shm tmpfs228K743227K1% /run tmpfs228K16228K1% /sys/fs/cgroup /dev/mapper/centos-root8.5M39K8.5M1% / /dev/sda1512K334512K1% /boot tmpfs228K1228K1% /run/user/0
- 硬链接:hard link,称inode相同的两个文件互为硬链接
- 因为查找文件是通过inode号找到数据块,所以互为硬链接的两个文件本质上是同一个文件,内容自然相同。一个文件改变,另一个文件自然改变
- 删除一个文件,不会影响其他硬链接文件
- 我们每添加一个硬链接,该文件的inode连接数就会增加1;而且只有当该文件的inode连接数为0时,才算彻底将它删除。换言之,由于硬链接实际上是指向原文件inode的指针,因此即便原始文件被删除,依然可以通过硬链接文件来访问。
- 需要注意的是,由于技术的局限性,我们不能跨分区对目录文件进行链接
- 特点
- 不论是修改源文件(test 文件),还是修改硬链接文件(test-hard 文件),另一个文件中的数据都会发生改变。
- 不论是删除源文件,还是删除硬链接文件,只要还有一个文件存在,这个文件都可以被访问。
- 硬链接不会建立新的 inode 信息,也不会更改 inode 的总数。
- 硬链接不能跨文件系统(分区)建立,因为在不同的文件系统中,inode 号是重新计算的
- 硬链接不能链接目录
[root@server1 tmp]# ln file1 h_file1
[root@server1 tmp]# ll -i
总用量 0
16784325 -rw-r--r-- 2 root root 0 8月21 12:11 file1
16784325 -rw-r--r-- 2 root root 0 8月21 12:11 h_file1
17184545 lrwxrwxrwx 1 root root 5 8月21 12:52 sl_file1 -> file1
软连接
概述
- 软链接:symbolic link,也称为符号链接
- 仅仅包含所链接文件的路径名,因此能链接目录文件,也可以跨越文件系统进行链接。但是,当原始文件被删除后,链接文件也将失效,从这一点上来说与Windows系统中的“快捷方式”具有一样的性质
查找文件流程:
打开软连接–>通过路径找到file1–>查看inode–>找到inode对应的数据块–>读取
- 特点
- 不论是修改源文件(check),还是修改软链接文件(check-soft),另一个文件中的数据都会发生改变
- 删除软链接文件,源文件不受影响。而删除原文件,软链接文件将找不到实际的数据,从而显示文件不存在
- 软链接会新建自己的 inode 信息和 block,只是在 block 中不存储实际文件数据,而存储的是源文件的文件 名及 inode 号
- 软链接可以链接目录
- 软链接可以跨分区
- 【运维|磁盘管理-扩容swap空间+磁盘配额+软硬链接】软连接与源文件不是同一个文件
- 不论是修改源文件(check),还是修改软链接文件(check-soft),另一个文件中的数据都会发生改变
创建
[root@server1 tmp]# touch file1
[root@server1 tmp]# ln -s file1 sl_file1
[root@server1 tmp]# ll -i
#总用量 0
16784325 -rw-r--r-- 1 root root 0 8月21 12:11 file1
17184545 lrwxrwxrwx 1 root root 5 8月21 12:16 sl_file1 -> file1删除
[root@server1 tmp]# unlink sl_file1
[root@server1 tmp]# ls
file1
推荐阅读
- 基于微信小程序带后端ssm接口小区物业管理平台设计
- 2020-04-07vue中Axios的封装和API接口的管理
- 全过程工程咨询——时间管理(12)
- 《卓有成效的管理者》第二十二堂课(创造英雄)
- 游乐园系统,助力游乐园管理
- #山言良语#用管理思维百天减肥18斤
- 最有效的时间管理工具(赢效率手册和总结笔记)
- 干货来袭(自我管理(来几款撩人的APP))
- 九型管理教练复盘(一)
- 我在管理实验班中的一些经验教训