磁盘管理-扩容swap空间+磁盘配额+软硬链接

磁盘管理-补充扩展

扩容swap空间

添加磁盘扩容

流程:新建分区–>刷新分区表–>格式化–>激活

查看信息
[root@server1 ~]# free -h
            total      used      free    shared  buff/cache   available
Mem:         1.8G      147M      1.2G      9.6M        410M        1.5G
Swap:        2.0G        0B      2.0G
[root@server1 ~]# swapon -s
文件名				类型		大小	 已用	权限
/dev/dm-1      	partition 2097148  0  -2

新建分区(使用sdb2作为交换空间)
[root@server1 ~]# fdisk /dev/sdb
#欢迎使用 fdisk (util-linux 2.23.2)。

#更改将停留在内存中,直到您决定将更改写入磁盘。
#使用写入命令前请三思。


#命令(输入 m 获取帮助):n
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
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
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
├─sdb1            8:17   0    2G  0 part 
└─sdb2            8:18   0    2G  0 part 
sr0              11:0    1  973M  0 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-1        partition	2097148	0	-2
/dev/sdb2        partition	2097148	0	-3

永久激化
[root@server1 ~]# vim /etc/fstab
#追加
/dev/sdb2   swap    swap    defaults    0   0

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
            total      used      free    shared  buff/cache   available
Mem:         1.8G      149M       72M      9.6M        1.6G        1.5
Swap:        5.0G        0B      5.0G

磁盘配额案例

  • 作用:限制用户或组对磁盘空间的使用,例如文件服务器,邮件服务器…

  • 案例要求:

    • 创建3个用户user1,user2,user3,密码和用户名相同,初始组为usergrp组。
    • 3个用户都可以取得500M的磁盘使用空间,超过400M,给予提示。文件数量不能多于5个,超过3个,给予提示
创建分区sdb1
[root@server1 ~]# fdisk /dev/sdb
#命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
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
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0    5G  0 disk 
└─sdb1            8:17   0    2G  0 part 
sr0              11:0    1  973M  0 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
文件系统                类型      容量  已用  可用 已用% 挂载点
devtmpfs                devtmpfs  899M     0  899M    0% /dev
tmpfs                   tmpfs     910M     0  910M    0% /dev/shm
tmpfs                   tmpfs     910M  9.6M  901M    2% /run
tmpfs                   tmpfs     910M     0  910M    0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        17G  1.9G   16G   11% /
/dev/sda1               xfs      1014M  194M  821M   20% /boot
tmpfs                   tmpfs     182M     0  182M    0% /run/user/0
/dev/sdb1               ext4      2.0G  6.0M  1.8G    1% /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=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,grpquota  0   0

启动quota磁盘配额
[root@server1 ~]# yum install -y quota
[root@server1 ~]# quotacheck -acug
选项说明:
-a:所有分区(已支持配额)
-c:创建
-u:用户
-g:组
[root@server1 ~]# ll /mnt/mount_sdb1/
总用量 44
-rw------- 1 root   root     7168 8月  21 12:12 aquota.group
-rw------- 1 root   root     7168 8月  21 12:12 aquota.user
drwx------ 2 root   root    16384 8月  21 12:06 lost+found
drwx------ 2 user01 usergrp  4096 8月  21 12:07 user01
drwx------ 2 user02 usergrp  4096 8月  21 12:07 user02
drwx------ 2 user03 usergrp  4096 8月  21 12:07 user03
[root@server1 ~]# quotaon -a

编辑限额配置
[root@server1 ~]# edquota -u user01
Disk quotas for user user01 (uid 1001):
  Filesystem    blocks     soft       hard    inodes   soft     hard
  /dev/sdb1      16       409600     512000     4        8       10

soft:又称软限制,当用户到达这个限制以后,系统会给予警告,但仍可写入。
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 limits                File limits
User            used    soft    hard  grace    used  soft  hard  grace
----------------------------------------------------------------------
root      --     20K      0K      0K              2     0     0       
user01    +-    451M    400M    500M  7days       5     8    10       
user02    --     16K    400M    500M              5     8    10       
user03    --     16K    400M    500M              4     8    10  

测试
[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)% 挂载点
devtmpfs                 225K     399    225K       1% /dev
tmpfs                    228K       1    228K       1% /dev/shm
tmpfs                    228K     743    227K       1% /run
tmpfs                    228K      16    228K       1% /sys/fs/cgroup
/dev/mapper/centos-root  8.5M     39K    8.5M       1% /
/dev/sda1                512K     334    512K       1% /boot
tmpfs                    228K       1    228K       1% /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 号

    • 软链接可以链接目录

    • 软链接可以跨分区

    • 软连接与源文件不是同一个文件

创建与删除

创建
[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

你可能感兴趣的:(运维,Linux,centos,linux,运维)