【运维知识基础篇】Linux磁盘管理

磁盘是存放数据的地方,先带大家了解了磁盘,磁盘分类,转数,选购方式,raid形式;后面讲到了mbr格式,gpt格式分别用fdisk和parted软件进行分区,分区后挂载使用;最后介绍了关于磁盘的使用案例,比如磁盘满后怎么解决,如何查找系统中的大文件,swap内存充当临时内存等等。


磁盘结构(了解)

磁盘外部结构:

磁盘分类:
机械磁盘(机械硬盘)   像个砖头,在台式机里,3.5英寸大小,通过机械运动达到读写数据的作用
固态磁盘              是芯片式的
NVME磁盘             M.2磁盘 PCI-E 类似显卡 像内存条

接口类型及转速决定了读写速度
IDE接口   已经淘汰了 很多针,有插电源的地方
SCSI接口  笔记本 台式机 不常用
STAT接口  笔记本 台式机 左边数据线右边电源线 中间有豁口 7200转/10k转
SAS接口   多出来一块 服务器标配 7.2k 10k 15k
15k/分钟最大储存 900G(能达到15k转) 600G(用的居多,600*8或者600*4) 300G
做备份的服务器,只管空间大,2T 4T*8
磁盘大小:3.5英寸 2.5英寸(笔记本磁盘,可以多插几个)
PCI-E     白色插槽,可以插外接独立声卡

fdisk -l 可以查看磁盘扇区总扇区数乘以一个扇区磁盘大小就是磁盘大小,磁盘以1000为1个单位

与1024不一样

raid逻辑的将磁盘组合在一起,可以增加容量,也可以提高性能

注重安全速度就慢,注重速度安全性就低

常用raid级别及应用场景

服务器磁盘先连接到raid卡上,再连接主板

raid0    最高的存储性能 磁盘容量不浪费,读写很快
要制作raid0 至少需要一块磁盘
任何一块硬盘损坏,所有数据无法使用

raid1    可以损失一半的数据容量
raid1至少需要两块磁盘,需要偶数数量的磁盘
不能提示存储性能,但会更安全,理论上写性能和单盘相差不大

raid5    可以损失一块盘的容量 
安全性最多可以损坏一块磁盘,也可以用热备盘,这样可以最多坏两个了
写入性能不好,读取速度ok

raid10   先将两块盘组成raid1,再将raid1组成raid0 
可以损坏所有硬盘一半的容量,也看损失的是不是一样的数据
读写很快

raid01就反过来,raid01可以损失一边的

企业中用0和5最多

磁盘分区

MBR格式
一个磁盘最多分四个,扩展分区最多一个,基于扩展分区划分逻辑分区
三个主分区+一个扩展分区+逻辑分区第五个开始
主分区:直接对磁盘进行格式化的分区,可以直接存储进去,速度也是最快
逻辑分区:扩展分区无法使用,基于逻辑分区划分逻辑分区。正常放数据,但是速度会慢
GPT格式
最多支持128个主分区

MBR格式和GPT格式分区区别
MBR格式对于小于2T的磁盘进行分区 使用fdisk分区
GPT格式对于大于2T的磁盘进行分区 使用parted分区

磁盘分区的设备名称
第一块磁盘:sda
第二块磁盘:sdb
         ......
第一块磁盘的第一个主分区:sda1
第一块磁盘的第二个主分区:sda2
第一块磁盘的第二个主分区:sda3
第一块磁盘的第一个扩展分区:sda4
第一块磁盘的第一个逻辑分区:ada5

磁盘挂载模拟流程

Linux系统的硬件必须通过挂载的方式才可以访问

默认无法读取硬件,类似于没有窗户没有门的监狱 进不去也出不来

创建目录挂载,只是创建了目录,给硬件提供一个入口

示例1:挂载cdrom
第一步:把镜像文件插入到DVD(装系统已经插进去了)
第二步:查看dev下的cdrom
第三步:直接将cdrom挂载到临时的挂载点

[root@VMware-koten ~]# mount /dev/cdrom /mnt/
mount: /dev/sr0 is write-protected, mounting read-only #提示被保护,不能写
[root@VMware-koten ~]#

查看挂载信息
[root@VMware-koten Packages]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.5M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        19G  2.0G   17G  11% /
/dev/sda1       197M  110M   88M  56% /boot
tmpfs           199M     0  199M   0% /run/user/0
/dev/sr0        4.4G  4.4G     0 100% /mnt
[root@VMware-koten Packages]# 

第四步:通过mnt进入cdrom查看里面的内容

第五步:不想用了卸载,记得先出来这个门
[root@VMware-koten Packages]# umount /mnt/
umount: /mnt: target is busy.#目标忙,因为在门里
        (In some cases useful info about processes that use
         the device is found by lsof(8) or fuser(1))
[root@VMware-koten Packages]# cd
[root@VMware-koten ~]# umount /mnt/
[root@VMware-koten ~]# ll /mnt/
total 0        #卸载成功
[root@VMware-koten ~]# 

注意:挂载的目录下面会有内容隐藏,卸载后会再显示,不影响使用,但是最好用新目录

磁盘挂载

第一步:虚拟机右键设置,添加磁盘,设置大小512MB

第二步:添加完成后重启系统

注意:

vmware添加磁盘需要重启

企业中使用硬件服务器插入磁盘不需要重启 支持热插拔

云服务器不需要重启

第三步,使用fdisk -l查看

[root@VMware-koten ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000eee9b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     2508799     1048576   82  Linux swap / Solaris
/dev/sda3         2508800    41943039    19717120   83  Linux

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes

[root@VMware-koten ~]# 

第四步:对磁盘进行分区,不分区不让挂载

[root@VMware-koten ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).

Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.

Device does not contain a recognized partition table
Building a new DOS disklabel with disk identifier 0x21168715.

Command (m for help): m
Command action
   a   toggle a bootable flag                  #标签,不需要
   b   edit bsd disklabel                      #标签,不需要
   c   toggle the dos compatibility flag       #不需要
   d   delete a partition                      #删除分区,需要
   g   create a new empty GPT partition table  #不需要
   G   create an IRIX (SGI) partition table    #不需要 
   l   list known partition types              #列出详细信息
   m   print this menu                         #显示帮助信息
   n   add a new partition                     #创建分区
   o   create a new empty DOS partition table  #不需要
   p   print the partition table               #打印分区信息
   q   quit without saving changes             #退出不保存       
   s   create a new empty Sun disklabel        #不需要
   t   change a partition's system id          #改变分区格式id
   u   change display/entry units              #不需要
   v   verify the partition table              #不需要
   w   write table to disk and exit            #保存并退出
   x   extra functionality (experts only)      #不需要

Command (m for help): n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p                       #选择创建分区 p默认位主分区
Partition number (1-4, default 1): 1        #主分区的编号
First sector (2048-1048575, default 2048):  #直接回车默认开始的扇区
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-1048575, default 1048575): +100M
Partition 1 of type Linux and of size 100 MiB is set

Command (m for help): p #查看分区表

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos #MBR格式
Disk identifier: 0x21168715

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   83  Linux

Command (m for help):
省略创建三个主分区
......

删除第四个主分区
Command (m for help): d
Partition number (1-4, default 4): 
Partition 4 is deleted

Command (m for help): 

给第四个创建扩展分区
Command (m for help): n
Partition type:
   p   primary (3 primary, 0 extended, 1 free)
   e   extended
Select (default e): 
Using default response e
Selected partition 4
First sector (616448-1048575, default 616448): 
Using default value 616448
Last sector, +sectors or +size{K,M,G} (616448-1048575, default 1048575): +100M
Partition 4 of type Extended and of size 100 MiB is set

Command (m for help): p

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x21168715

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   83  Linux
/dev/sdb2          206848      411647      102400   83  Linux
/dev/sdb3          411648      616447      102400   83  Linux
/dev/sdb4          616448      821247      102400    5  Extended

Command (m for help): 

[root@VMware-koten ~]# fdisk -l

Disk /dev/sda: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x000eee9b

   Device Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048      411647      204800   83  Linux
/dev/sda2          411648     2508799     1048576   82  Linux swap / Solaris
/dev/sda3         2508800    41943039    19717120   83  Linux

Disk /dev/sdb: 536 MB, 536870912 bytes, 1048576 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x21168715

   Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      206847      102400   83  Linux
/dev/sdb2          206848      411647      102400   83  Linux
/dev/sdb3          411648      616447      102400   83  Linux
/dev/sdb4          616448      821247      102400    5  Extended
[root@VMware-koten ~]# 

第五步:格式化磁盘(相当于打扫卫生)

使用mkfs.xfs

[root@VMware-koten ~]# mkfs.xfs /dev/sdb1
meta-data=/dev/sdb1              isize=512    agcount=4, agsize=6400 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=25600, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=855, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0
[root@VMware-koten ~]# 

第六步:挂载使用磁盘

mount /dev/sdb1 /mnt

[root@VMware-koten ~]# mount /dev/sdb1 /mnt

[root@VMware-koten mnt]# df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.5M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        19G  2.0G   17G  11% /
/dev/sda1       197M  110M   88M  56% /boot
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        97M  5.3M   92M   6% /mnt
[root@VMware-koten mnt]# 

常用磁盘挂载方式

1、插入磁盘(虚拟机添加磁盘)

2、磁盘格式化,一般不需要分区 不能格式化用-f 强制格式化

[root@VMware-koten ~]#mkfs.xfs /dev/sdc 
meta-data=/dev/sdc               isize=512    agcount=4, agsize=131072000 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=524288000, imaxpct=5
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=256000, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

3、磁盘挂载

创建空目录,挂载,df -h查看

[root@VMware-koten ~]#mkdir /data
[root@VMware-koten ~]#mount /dev/sdc /data/
[root@VMware-koten ~]#df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.5M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        19G  1.9G   17G  10% /
/dev/sda1       197M  110M   88M  56% /boot
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        97M  5.3M   92M   6% /mnt
/dev/sdc        2.0T   33M  2.0T   1% /data
[root@VMware-koten ~]#

开机自动挂载

1、加入/etc/fstab 开机自动挂载硬件

[root@VMware-koten ~]#blkid
/dev/sda1: UUID="d668ff1c-a7da-4b2e-b534-8582e7261529" TYPE="xfs" 
/dev/sda2: UUID="b2193101-867d-415d-b905-491d531af8e0" TYPE="swap" 
/dev/sda3: UUID="43e725b7-4493-4c94-9646-7e90df49ec1e" TYPE="xfs" 
/dev/sdb1: UUID="ef6f9c31-de6c-40a0-b7a7-a12206c85ba9" TYPE="xfs" 
/dev/sdc: UUID="00a5d78a-f5c0-491a-9ccf-2a93f625b918" TYPE="xfs" 
[root@VMware-koten ~]#

#根据blkid信息填写fstab

[root@VMware-koten ~]# cat /etc/fstab
#
# /etc/fstab
# Created by anaconda on Wed Feb 22 21:44:17 2023
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
UUID=43e725b7-4493-4c94-9646-7e90df49ec1e /                       xfs     defaults        0 0
UUID=d668ff1c-a7da-4b2e-b534-8582e7261529 /boot                   xfs     defaults        0 0
UUID=b2193101-867d-415d-b905-491d531af8e0 swap                    swap    defaults        0 0
/dev/sdb  /mnt  xfs          defaults        0             0
[root@VMware-koten ~]#

/dev/sdb /data xfs defaults 0 0

硬件名称 挂载点 挂载类型 挂载参数 是否备份 是否检查

2、也可以写入/etc/rc.local

vim /etc/rc.local
mount /dev/sdb /data

大于2T的磁盘进行分区

大于2T的磁盘需要将格式修改为GPT格式

使用命令parted进行分区 直接生效

1、在虚拟机添加一块2T的磁盘

2、重启虚拟机

3、查看是否添加成功

fdisk -l

4、parted进行分区

1)交互式

[root@VMware-koten ~]#parted /dev/sdc
GNU Parted 3.1
Using /dev/sdc
Welcome to GNU Parted! Type 'help' to view a list of
commands.
                                                    (parted) help
  align-check TYPE N                        check
        partition N for TYPE(min|opt) alignment
  help [COMMAND]                           print        
        general help, or help on COMMAND
  mklabel,mktable LABEL-TYPE               create a   
        new disklabel (partition table)                 #创建新的格式
  mkpart PART-TYPE [FS-TYPE] START END     make a       
        partition                                       #创建分区
  name NUMBER NAME                         name
        partition NUMBER as NAME
  print [devices|free|list,all|NUMBER]     display      #显示分区表
        the partition table, available devices, free
        space, all found partitions, or a particular
        partition
  quit                                     exit          #退出
        program
  rescue START END                         rescue a
        lost partition near START and END
  
  resizepart NUMBER END                    resize
        partition NUMBER
  rm NUMBER                                delete        #删除分区
        partition NUMBER
  select DEVICE                            choose
        the device to edit
  disk_set FLAG STATE                      change
        the FLAG on selected device
  disk_toggle [FLAG]                       toggle
        the state of FLAG on selected device
  set NUMBER FLAG STATE                    change
        the FLAG on partition NUMBER
  toggle [NUMBER [FLAG]]                   toggle
        the state of FLAG on partition NUMBER
  unit UNIT                                set the
        default unit to UNIT
  version                                  display
        the version number and copyright information
        of GNU Parted
                                                    (parted)3

(parted) mklabel gpt   #将分区表格式更改为gpt
Warning: Partition(s) on /dev/sdc are being used.
                                                                                                        Ignore/Cancel? I      
Warning: The existing disk label on /dev/sdc will be
destroyed and all data on this disk will be lost. Do
you want to continue?
                                                                                                        Yes/No? y        
(parted) mkpart                         #分区命令  
Partition name?  []? primary            #分区名称
File system type?  [ext2]? xfs          #分区类型
Start? 0                                #从哪里开始
End? 100G                               #大小
Warning: The resulting partition is not properly
aligned for best performance.
                                                                                Ignore/Cancel? I                         #输入I,忽视警告
                                      
(parted) print                           #打印分区表   
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name     Flags
 1      17.4kB  100GB  100GB               primary

                                                    (parted) 

2)非交互式

(parted) mkpart primary xfs 100G 200G
                                                    (parted) print        
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name     Flags
 1      17.4kB  100GB  100GB               primary
 2      100GB   200GB  100GB               primary

                                                    (parted)

不需要进mkpartd命令进行分区

3)不进入mkpartd命令进行分区

[root@VMware-koten ~]#parted /dev/sdc mkpart primary xfs 200G 500G
Information: You may need to update /etc/fstab.

[root@VMware-koten ~]#parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name     Flags
 1      17.4kB  100GB  100GB               primary
 2      100GB   200GB  100GB               primary
 3      200GB   500GB  300GB               primary

[root@VMware-koten ~]#

#删除分区
[root@VMware-koten ~]#parted /dev/sdc rm 3
Information: You may need to update /etc/fstab.

[root@VMware-koten ~]#parted /dev/sdc print
Model: VMware, VMware Virtual S (scsi)
Disk /dev/sdc: 2147GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt
Disk Flags: 

Number  Start   End    Size   File system  Name     Flags
 1      17.4kB  100GB  100GB               primary
 2      100GB   200GB  100GB               primary

[root@VMware-koten ~]#

5、格式化分区

[root@VMware-koten ~]#mkfs.xfs /dev/sdc1
meta-data=/dev/sdc1              isize=512    agcount=4, agsize=6103515 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=24414058, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=11920, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

6、挂载使用

[root@VMware-koten ~]#mount /dev/sdc1 /data
[root@VMware-koten ~]#df -h
Filesystem      Size  Used Avail Use% Mounted on
devtmpfs        980M     0  980M   0% /dev
tmpfs           991M     0  991M   0% /dev/shm
tmpfs           991M  9.5M  981M   1% /run
tmpfs           991M     0  991M   0% /sys/fs/cgroup
/dev/sda3        19G  1.9G   17G  11% /
/dev/sda1       197M  110M   88M  56% /boot
tmpfs           199M     0  199M   0% /run/user/0
/dev/sdb1        97M  5.3M   92M   6% /mnt
/dev/sdc1        94G   33M   94G   1% /data
[root@VMware-koten ~]#

磁盘案例

案例1:企业中程序导致内存不够用

如果内存满则系统会自动杀死占用内存最高的进程,来保护系统正常运行
什么原因导致内存满
1、大量的用户访问我们的服务器(正常情况)需要我们添加内存
2、由于程序导致内存满,而不是大量用户访问导致(找开发解决问题)
3、由于网络的波动导致内存满,需要使用swap解决
4、学习中,可能需要swap临时充当内存使用
5、公司内部业务(测试服务器),需要使用swap临时解决

swap作用:当内存不够用时,磁盘分区临时充当内存使用
查看swap分区,使用free -h
[root@VMware-koten ~]#free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        218M        1.6G        9.5M        108M        1.6G
Swap:          1.0G          0B        1.0G
[root@VMware-koten ~]#

创建swap分区:
1、安装系统划分的分区
2、可以安装系统后创建
第一步:生成一个200M的空间,把200M的空间当作swap空间
dd if=/dev/zero of=/tmp/200m bs=1M count=200
[root@VMware-koten ~]#dd if=/dev/zero of=/tmp/200m bs=1M count=200
200+0 records in
200+0 records out
209715200 bytes (210 MB) copied, 1.13911 s, 184 MB/s
[root@VMware-koten ~]#

第二步:格式化为swap分区格式
mkswap /tmp/200m
[root@VMware-koten ~]#mkswap /tmp/200m
Setting up swapspace version 1, size = 204796 KiB
no label, UUID=9429e531-a4c5-4e34-b238-57a1efcfc2c2
[root@VMware-koten ~]#

第三步:挂载使用swapon /tmp/200m回车
[root@VMware-koten ~]#swapon /tmp/200m
swapon: /tmp/200m: insecure permissions 0644, 0600 suggested.
第四步:free -h
[root@VMware-koten ~]#free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        265M        1.0G        9.5M        678M        1.5G
Swap:          1.2G          0B        1.2G

查看swap分区的组成
swspon -s
[root@VMware-koten ~]#swapon -s
Filename                Type       Size    Used    Priority
/dev/sda2                                  partition  1048572    0    -2
/tmp/200m                                  file    204796    0    -3

重启会掉,需要开机自动挂载
卸载swap
[root@VMware-koten ~]#swapoff /tmp/200m
[root@VMware-koten ~]#free -h
              total        used        free      shared  buff/cache   available
Mem:           1.9G        265M        1.0G        9.5M        678M        1.5G
Swap:          1.0G          0B        1.0G
[root@VMware-koten ~]#

案例2:磁盘不够用找出大文件备份或删除

找出系统中的大文件移动或删除

[root@VMware-koten ~]#du -h /var/log/*|awk '$1~ /^.*G/'|xargs -i mv {} /data
[root@VMware-koten ~]#find / -type f -size +1G|xargs rm

案例3:找出系统中小文件多的目录备份或删除

df -i 查看inode使用信息
[root@VMware-koten ~]#df -i
Filesystem       Inodes IUsed    IFree IUse% Mounted on
devtmpfs         250790   410   250380    1% /dev
tmpfs            253483     1   253482    1% /dev/shm
tmpfs            253483   738   252745    1% /run
tmpfs            253483    16   253467    1% /sys/fs/cgroup
/dev/sda3       9858560 60425  9798135    1% /
/dev/sda1        102400   326   102074    1% /boot
tmpfs            253483     1   253482    1% /run/user/0
/dev/sdb1         51200     3    51197    1% /mnt
/dev/sdc1      48828096     3 48828093    1% /data
[root@VMware-koten ~]#find /-type d -size +70k

案例4:磁盘使用软连接解决磁盘不够用

1、添加磁盘

2、格式化

3、挂载

mount /dev/sdc /data

4、将大文件移动到新磁盘(服务日志没有输出,选择业务的低谷期,禁止用户写入内容(DB)锁库锁表)

[root@VMware-koten ~]#ln -s /data/10G /var/log/10g 
#将/data/10G做软链接到/var/log/10g

磁盘不够用:

  1. 虚拟机可以通过增加磁盘解决

  1. 虚拟机可以做LVM逻辑卷管理动态调整磁盘大小,互联网公司不用

  1. 云服务器可以动态扩缩容磁盘大小

案例5:删除文件后,磁盘空间不释放

真正的删除一个文件硬链接和软连接数都为0,且不被进程占用

1、模拟文件被进程调用
tail /data/10G
2、删除文件后磁盘空间不释放
rm -rf 10G
df -h
3、查看进程调用lsof
yum -y install lsof
lsof |grep 10G
tail 3407 root 3r REG 8,32 10485760000 67 /data/10G (deleted)
4、结束进程或者加载服务
kill -9 3407
df -h #查看磁盘是否被释放

我是koten,10年运维经验,持续分享运维干货,感谢大家的阅读和关注!

  • 5
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是koten

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值