查看磁盘信息

命令df
查看已挂载磁盘的总容量、使用容量、剩余容量等

[root@k8s-node01 ~]# df -h
Filesystem               Size  Used Avail Use% Mounted on
/dev/mapper/centos-root   17G   11G  6.6G  62% /
devtmpfs                 1.4G     0  1.4G   0% /dev
tmpfs                    1.4G     0  1.4G   0% /dev/shm
tmpfs                    1.4G   71M  1.4G   5% /run
tmpfs                    1.4G     0  1.4G   0% /sys/fs/cgroup
/dev/sdc1                 20G   33M   20G   1% /data
/dev/sda1               1014M  160M  855M  16% /boot
/dev/mapper/vmvg-lvvm1    79G   57M   75G   1% /vm
tmpfs                    284M     0  284M   0% /run/user/0

df常用的选项有:
-i :显示inode 信息而非块使用量。
-h : 使用合适的单位显示,例如:M,K,G等。
-k:以K为单位显示。
-m:以M为单位显示

命令du
du” 用来查看某个目录或文件所占空间大小.

[root@k8s-node01 /]# du -sh /etc/
42M	/etc/
[root@k8s-node01 /]# du -sh *
0	bin
128M	boot
0	data
0	dev
42M	etc
0	home

语法 : du [-abckmsh] [文件或者目录名]
常用的参数有:
-a(all):全部文件与目录大小都列出来。
-b(bytes):列出的值以bytes为单位输出。
-k,-m:分别以K为单位和以M为单位。du默认单位k。
-h(human-readable):自动调节单位。
-c(total):最后加总。
-s(summarize):只列出总和。

分区与挂载

命令fdisk
fdisk 是Linux下硬盘的分区工具,是一个非常实用的命令,但是fdisk只能划分小于2T的分区

[root@k8s-node01 /]# fdisk /dev/sdc

a:一个可引导的标志。
b:编辑bsd磁碟标签
c:切换dos兼容标志
d:删除一个分区
g:创建一个新的空GPT分区表
G:创建IRIX(SGI)分区表
l:列出已知的分区类型
m:打印这个菜单
n:增加一个新分区
o:创建一个新的空DOS分区表
p:打印分区表
q:在没有保存更改的情况下退出
s:创建一个新的空的Sun磁盘标签
t:改变分区的系统id
u:变化显示/输入单元
v:验证分区表
w:写表到磁盘和出口
命令lsblk
查看详细分区及挂载信息

[root@k8s-node01 /]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
fd0               2:0    1    4K  0 disk 
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   80G  0 disk 
└─sdb1            8:17   0   80G  0 part 
  └─vmvg-lvvm1  253:2    0   80G  0 lvm  /vm
sdc               8:32   0    4T  0 disk 
├─sdc1            8:33   0   20G  0 part /data
├─sdc2            8:34   0   20G  0 part 
└─sdc3            8:35   0    1K  0 part 
sr0              11:0    1 60.1M  0 rom 

格式化磁盘分区

[root@k8s-node01 /]# mkfs.xfs /dev/sdc2

挂载
在挂载某个分区前需要先建立一个挂载点,这个挂载点是以目录的形式出现的。一旦把某一个分区挂载到了这个挂载点(目录)下,那么再往这个目录写数据使,则都会写到该分区中。这就需要注意一下,在挂载该分区前,挂载点(目录)下必须是个空目录。其实目录不为空并不影响所挂载分区的使用,但是一旦挂载上了,那么该目录下以前的东西就不能看到了。只有卸载掉该分区后才能看到。

[root@k8s-node01 /]# mkdir sdc2
[root@k8s-node01 /]# mount /dev/sdc2 /sdc2/

/etc/fstab
实现永久挂载,写入配置文件/etc/fstab 以实现开机时,自动挂载

#
# /etc/fstab
# Created by anaconda on Thu Mar 14 06:36:20 2019
#
# 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
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=3d10e9f6-03a8-481c-ae57-4af5d8be61f8 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/vmvg/lvvm1 /vm ext4 defaults 0 0
/dev/sdc1 /data xfs defaults 0 0

这个文件是系统启动时,需要挂载的各个分区。第一列就是分区的标识,可以写分区的LABEL,也可以写分区的UUID,当然也可以写分区名(/dev/sda1);第二列是挂载点;第三列是分区的格式;第四列则是mount的一些挂载参数,等下会详细介绍一下有哪些参数,一般情况下,直接写defaults即可;第五列的数字表示是否被dump备份,是的话这里就是1,否则就是0;第六列是开机时是否自检磁盘。1,2都表示检测,0表示不检测,在Redhat/CentOS中,这个1,2还有个说法,/ 分区必须设为1,而且整个fstab中只允许出现一个1,这里有一个优先级的说法。1比2优先级高,所以先检测1,然后再检测2,如果有多个分区需要开机检测那么都设置成2吧,1检测完了后会同时去检测2。下面为第四列中常用到的参数。

async/sync” : async表示和磁盘和内存不同步,系统每隔一段时间把内存数据写入磁盘中,而sync则会时时同步内存和磁盘中数据;
“auto/noauto” : 开机自动挂载/不自动挂载;
“default” : 按照大多数永久文件系统的缺省值设置挂载定义,它包含了rw, suid, dev, exec, auto, nouser, async
“ro” : 按只读权限挂载 ;
“rw” : 按可读可写权限挂载 ;
“exec/noexec” : 允许/不允许可执行文件执行,但千万不要把根分区挂载为noexec,那就无法使用系统了,连mount命令都无法使用了,这时只有重新做系统了;
“user/nouser” : 允许/不允许root外的其他用户挂载分区,为了安全考虑,请用nouser ;
“suid/nosuid” : 允许/不允许分区有suid属性,一般设置nosuid ;
“usrquota” : 启动使用者磁盘配额模式,磁盘配额相关内容在后续章节会做介绍;
“grquota” : 启动群组磁盘配额模式;

[root@k8s-node01 /]# umount /dev/sdc2 #先卸载  -l 强制卸载
[root@k8s-node01 /]# echo '/dev/sdc2 /sdc2 xfs defaults 0 0'>> /etc/fstab 
[root@k8s-node01 /]# mount -a        # -a会把/etc/fstab中出现的所有磁盘分区挂载上
[root@k8s-node01 /]# df -h
Filesystem               Size  Used Avail Use% Mounted on
,,,,,,
/dev/sdc2                 20G   33M   20G   1% /sdc
,,,,,,**加粗样式**

blkid命令
为了防止磁盘挂载错乱的现象,最好用uuid挂载,可以通过 blkid 命令获取各分区的UUID。

[root@k8s-node01 /]# blkid
/dev/mapper/centos-root: UUID="748f00e8-f445-47e0-a6db-3b18abdacb30" TYPE="xfs" 
/dev/sda2: UUID="wsS38N-FHLC-2aQA-V25i-KCuX-pWB5-OtRMhV" TYPE="LVM2_member" 
/dev/sda1: UUID="3d10e9f6-03a8-481c-ae57-4af5d8be61f8" TYPE="xfs" 
/dev/sdb1: UUID="QXSUgV-lXGp-zwPT-E8sP-wPqJ-Q2FD-UM40Ie" TYPE="LVM2_member" 
/dev/sdc1: UUID="20af36f6-ee45-4c78-bcb6-6c46dc90a326" TYPE="xfs" 
/dev/sdc2: UUID="0de46025-1b04-48bd-803d-07694b418da3" TYPE="xfs" 
/dev/sr0: UUID="2014-03-21-16-49-54-00" LABEL="VMware Tools" TYPE="iso9660" 
/dev/mapper/centos-swap: UUID="771d1a32-496a-4593-9025-cee0a5ab66f4" TYPE="swap" 
/dev/mapper/vmvg-lvvm1: UUID="cd98ed7e-c6f6-4132-af03-0a509c8cc72c" TYPE="ext4"
[root@k8s-node01 /]# mount UUID="0de46025-1b04-48bd-803d-07694b418da3" /sdc2
mount: /dev/sdc2 is already mounted or /sdc2 busy
       /dev/sdc2 is already mounted on /sdc2

Gdisk命令
同fdisk,GPT 支持分配大于2个TB以上的磁盘, 同时支持N多个主分区

swap
[root@k8s-node01 /]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           2.8G        255M        1.9G         88M        678M        2.2G
Swap:          2.0G          0B        2.0G
[root@k8s-node01 /]# mkswap /dev/sdc2   #格式化为swap分区
mkswap: /dev/sdc2: warning: wiping old xfs signature.
Setting up swapspace version 1, size = 20971516 KiB
no label, UUID=c2012fe9-5095-4ddd-bd22-20f7663fa8f9
[root@k8s-node01 /]# swapon /dev/sdc2  #挂载swap分区
[root@k8s-node01 /]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           2.8G        271M        1.8G         88M        678M        2.2G
Swap:           21G          0B         21G
[root@k8s-node01 /]# swapoff /dev/sdc2   #卸载
[root@k8s-node01 /]# free -mh
              total        used        free      shared  buff/cache   available
Mem:           2.8G        256M        1.9G         88M        678M        2.2G
Swap:          2.0G          0B        2.0G

建立一个swap文件增加虚拟内存
如果磁盘没有过多的分区可用,也可以通过文件增加SWAP空间,本质上还是磁盘

# dd if=/dev/zero of=/opt/swap_file bs=1M count=500
# chmod 0600 /opt/swap_file
# mkswap -f /opt/swap_file 
# swapon /opt/swap_file
# free -m

PS: 如果希望swap开机自动挂载,将swap信息追加至/etc/fstab即可。
dd的使用方法,用 “if” 指定源,基本上除了 “/dev/zero” 外基本上不会写别的,而/dev/zero 是UNIX系统特有的一个文件,它可以提供源源不断的 “0”。 “of” 指定目标文件, “bs” 定义块的大小, “count” 定义块的数量,这两个参数的多少决定了目标文件的大小,目标文件大小 = bs x count。

Logo

K8S/Kubernetes社区为您提供最前沿的新闻资讯和知识内容

更多推荐