承接上文k8s自动化运维十一-LVM动态扩容磁盘空间
清理minikube overlay2
进入minikube overlay2目录cd /var/lib/docker/volumes/minikube/_data/lib/docker/overlay2/查询当前目录下大于100M的文件,并排序显示find . -type f -size +100M -print0 | xargs -0 du -h | sort -nr
把对应的大日志文件清理下cat /dev/null > ./b2a85dd1b865132d46f2469c5b3220628e5543d9090adbc72dd642dc142c7816/diff/app/logs/info/xibaoxiao-bwy/schedule/2022-09/xibaoxiao-bwy-2022-09-29-1.log查看minikube的镜像文件minikube image ls --format='table' # 以表格的形式展示 其他的展示方式 short|table|json|yaml
通过tag查看正在使用的镜像minikube image ls --format='table' |grep ziyong通过grep筛选出想要清除的镜像的编号并清除minikube image rm $(minikube image ls --format='table' | grep "<none>" | awk -F "|" '{print $4}')
清除docker overlay2
进入到docker overlay2目录cd /var/lib/docker/overlay2查看正在运行的docker 镜像对应的overlay2目录是哪个docker ps -q | xargs docker inspect --format '{{.State.Pid}}, {{.Name}}, {{.GraphDriver.Data.WorkDir}}'
筛选指定的目录
删除tag=none的镜像docker image rm $(docker images | grep "<none>" | awk -F " " '{print $3}') # 一行是一个字符串,F是指定分隔符,按照空格分割了之后,$3表示取第三个元素
磁盘使用指令
du -h /目录查看指定目录的磁盘占用情况,默认为当前目录这个命令只是统计目录,并没有统计文件,统计文件的话,加上参数adu -ha --max-depth=1 /var/lib/docker/volumes/minikube/_data/lib/docker/overlay2/-s 指定目录占用大小汇总 -h 带计量单位 -a 含文件 --max-depth=1 子目录深度 -c 列出明细的同时,增加汇总值查看目录大小,没有统计文件大小du -h --max-depth=2 /opt/jdk/
查看目录和文件大小du -ha --max-depth=2 /opt/jdk/
文件和目录都会计算大小
文件和目录大小计算大小并统计du -hac --max-depth=2 /opt/jdk/
只显示目录下的文件ls -l /opt|grep "^-" # - 开头的都是文件 # 统计个数 ls -l /opt|grep "^-" | wc -l
统计目录个数ls -l /opt|grep "^d" # 以字母d开头的是目录
展示所有的子目录和文件ls -lR /opt/ # R代表递归 ls -lR /opt/jdk/java/| more统计目录下所有的文件个数ls -lR /opt|grep "^-" | wc -l
树状显示目录yum install tree tree
Linux分区
对于linux来说,无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中的每个分区都是用来组成整个文件系统的一部分。Linux采用一种叫载入的处理方法,它的整个文件系统包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。通过挂载机制将分区和具体的目录联系起来,在linux中是按照这种机制管理分区的,
能不能将第二个硬盘的某个分区挂载到其他目录下呢?
比如将硬盘2的第一个分区挂载到/home目录下,在系统进入到/home目录,就相当于进入了硬盘2的第一个分区了
查看设备的挂载情况
lsblk 或 lsblk -f
sda是一块硬盘,里面有3个分区,第一块分区挂载到了/boot下面,第二块分区挂载到了swap,第三块分区17G挂载到了根目录,通过这个命令就比较清晰的看到硬盘分区跟文件系统的关联关系
每个分区都放了很多文件,结果造成硬盘满了,可以再加一块硬盘 ,再把这个硬盘的一个分区,挂载到另外一个目录下面去
硬盘说明
Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。
对于IDE硬盘,驱动器标识符为"hdx~",其中hd表明分区所在的设备类型。对于SCSI硬盘则标识为sdx~。x为盘号(a是基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~代表分区,前四个分区用数字1-到4表示,它们是主分区和扩展分区,从5开始就是逻辑分区,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示第二个IDE硬盘上的第二个主分区或扩展分区。
FSTYPE表示分区类型。UUID:当格式化后,会给每个分区一个唯一的不重复的40位的字符串。MOUNTPOINT是挂载点。
如何增加一块硬盘?
新增一块硬盘sdb,把sdb1分区挂载到/newdisk目录下。
虚拟机添加硬盘sdb(把硬盘和系统关联起来)
选中虚拟机,设置,设备列表添加硬盘,一路下一步,中间只有选择磁盘大小的地方需要修改,直到完成,然后重启系统才能识别
添加好磁盘之后,需要重启下服务器
lsblk
分区
给空的硬盘分区
分区命令
fdisk /dev/sdb
开始对sdb分区
m 显示分区列表p 显示磁盘分区 同fdisk -ln 新增分区d 删除分区w 写入并退出
说明:开始分区后,输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q。
/dev是设备文件夹,所有的硬盘都在这里,sdb这个文件指向或关联了这块硬盘,用文件来表示一个硬件。比如cpu、内存,都是用文件来表示的。
如果写2是默认2个分区,如果写1就默认将sdb这块硬盘分一个区。到此,就分区好了,
保存分区设置。
格式化
有了分区,给分区指定文件类型,
sdb1并没有uuid,说明目前还没有格式化,分区如果还没有格式化,就不能用。
格式化磁盘
mkfs -t ext4 /dev/sdb1ext4是分区类型
给指定的分区设置文件类型,
说明这个分区 已经格式化了。将来磁盘不够了,可以任意的增加磁盘
挂载
将分区与一个目录关联起来
# mount 设备名称 挂载目录mount /dev/sdb1 /newdisk# umount 设备名称或挂载目录umount /dev/sdb1 或 umount /newdisk
首先在linux文件系统创建一个newdisk目录或其他目录,
cd /mkdir newdiskmount /dev/sdb1 /newdisk/
挂载好之后,就会看到多了一个挂载点。
在/newdisk目录下写入文件,
就会保存在这块分区里面了。/newdisk只是一个目录,真正存放数据的地方还在在分区里。也可以把分区和目录的挂载关系去掉,将这个分区再挂在到别的目录上去,这个分区里面的文件还是存在的,
设置自动挂载-永久挂载
用命令行挂载,重启后会失效。通过修改/etc/fstab实现永久挂载,添加完之后,mount -a 即刻生效或reboot重启服务器也会生效。
添加sdb1与newdisk的关联关系,
如果不写sdb1的uuid,也可以直接写/dev/sdb1。启动的时候,会查询这个表 ,发现有这个挂载关系就会自动挂载。
如果分区空间不够了,就要增加相应的分区和硬盘来保障系统正常运行。通过这个表可以看到目前磁盘的使用情况也是正常的,使用率在80%以上 就不正常了,把不需要的文件清一清或者增加相应的硬盘。