查看磁盘信息
命令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。