运维|磁盘管理-扩容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空间+磁盘配额+软硬链接】软连接与源文件不是同一个文件
创建与删除
创建 [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

    推荐阅读