k8s自动化运维十二-磁盘管理

·  阅读 19
k8s自动化运维十二-磁盘管理

承接上文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
    复制代码

image.png

  • 把对应的大日志文件清理下

    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
    复制代码

image.png

  • 通过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}}'
    复制代码

image.png

  • 筛选指定的目录

image.png

  • 删除tag=none的镜像

    docker image rm $(docker images | grep "<none>" |  awk -F " " '{print $3}')
    
    # 一行是一个字符串,F是指定分隔符,按照空格分割了之后,$3表示取第三个元素
    复制代码

磁盘使用指令

  • du -h /目录

    查看指定目录的磁盘占用情况,默认为当前目录

    image.png

    这个命令只是统计目录,并没有统计文件,统计文件的话,加上参数a

    du -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/
复制代码

image.png

  • 查看目录和文件大小

    du -ha --max-depth=2 /opt/jdk/
    复制代码

image.png

文件和目录都会计算大小

  • 文件和目录大小计算大小并统计

    du -hac --max-depth=2 /opt/jdk/
    复制代码

image.png

  • 只显示目录下的文件

    ls -l /opt|grep "^-"
    
    # - 开头的都是文件
    
    # 统计个数
    ls -l /opt|grep "^-" | wc -l
    复制代码

image.png

image.png

  • 统计目录个数

    ls -l /opt|grep "^d"
    
    # 以字母d开头的是目录
    复制代码

image.png

  • 展示所有的子目录和文件

    ls -lR /opt/
    
    # R代表递归
    
    ls -lR /opt/jdk/java/| more
    复制代码
  • 统计目录下所有的文件个数

    ls -lR /opt|grep "^-" | wc -l
    复制代码

image.png

  • 树状显示目录

    yum install tree
    
    tree
    复制代码

image.png

Linux分区

image.png

  • 对于linux来说,无论有几个分区,分给哪一目录使用,它归根结底就只有一个根目录,一个独立且唯一的文件结构,linux中的每个分区都是用来组成整个文件系统的一部分。
  • Linux采用一种叫载入的处理方法,它的整个文件系统包含了一整套的文件和目录,且将一个分区和一个目录联系起来,这时要载入的一个分区将使它的存储空间在一个目录下获得。
  • 通过挂载机制将分区和具体的目录联系起来,在linux中是按照这种机制管理分区的,

能不能将第二个硬盘的某个分区挂载到其他目录下呢?

比如将硬盘2的第一个分区挂载到/home目录下,在系统进入到/home目录,就相当于进入了硬盘2的第一个分区了

image.png

查看设备的挂载情况

lsblk 或 lsblk -f
复制代码

image.png

sda是一块硬盘,里面有3个分区,第一块分区挂载到了/boot下面,第二块分区挂载到了swap,第三块分区17G挂载到了根目录,通过这个命令就比较清晰的看到硬盘分区跟文件系统的关联关系

image.png

每个分区都放了很多文件,结果造成硬盘满了,可以再加一块硬盘 ,再把这个硬盘的一个分区,挂载到另外一个目录下面去

image.png

硬盘说明

Linux硬盘分为IDE硬盘和SCSI硬盘,目前基本上是SCSI硬盘。

对于IDE硬盘,驱动器标识符为"hdx~",其中hd表明分区所在的设备类型。对于SCSI硬盘则标识为sdx~。x为盘号(a是基本盘,b为基本从属盘,c为辅助主盘,d为辅助从属盘),~代表分区,前四个分区用数字1-到4表示,它们是主分区和扩展分区,从5开始就是逻辑分区,hda3表示为第一个IDE硬盘上的第三个主分区或扩展分区,hdb2表示第二个IDE硬盘上的第二个主分区或扩展分区。

image.png

FSTYPE表示分区类型。UUID:当格式化后,会给每个分区一个唯一的不重复的40位的字符串。MOUNTPOINT是挂载点。

如何增加一块硬盘?

image.png

新增一块硬盘sdb,把sdb1分区挂载到/newdisk目录下。

虚拟机添加硬盘sdb(把硬盘和系统关联起来)

image.png

选中虚拟机,设置,设备列表添加硬盘,一路下一步,中间只有选择磁盘大小的地方需要修改,直到完成,然后重启系统才能识别

image.png

image.png

image.png

image.png

添加好磁盘之后,需要重启下服务器

lsblk

image.png

分区

给空的硬盘分区

分区命令

fdisk /dev/sdb
复制代码

开始对sdb分区

  • m 显示分区列表
  • p 显示磁盘分区 同fdisk -l
  • n 新增分区
  • d 删除分区
  • w 写入并退出

说明:开始分区后,输入n,新增分区,然后选择p,分区类型为主分区,两次回车默认剩余全部空间,最后输入w写入分区并退出,若不保存退出输入q。

image.png

/dev是设备文件夹,所有的硬盘都在这里,sdb这个文件指向或关联了这块硬盘,用文件来表示一个硬件。比如cpu、内存,都是用文件来表示的。

image.png

image.png如果写2是默认2个分区,如果写1就默认将sdb这块硬盘分一个区。到此,就分区好了,

image.png

image.png

保存分区设置。

格式化

有了分区,给分区指定文件类型,image.png

sdb1并没有uuid,说明目前还没有格式化,分区如果还没有格式化,就不能用。

格式化磁盘

mkfs -t ext4 /dev/sdb1
复制代码
  • ext4是分区类型

image.png

给指定的分区设置文件类型,

image.png

说明这个分区 已经格式化了。将来磁盘不够了,可以任意的增加磁盘

挂载

将分区与一个目录关联起来

# mount 设备名称 挂载目录

mount /dev/sdb1 /newdisk

# umount 设备名称或挂载目录

umount /dev/sdb1 或 umount /newdisk
复制代码

首先在linux文件系统创建一个newdisk目录或其他目录,

cd /

mkdir newdisk

mount /dev/sdb1 /newdisk/
复制代码

image.png

挂载好之后,就会看到多了一个挂载点。

在/newdisk目录下写入文件,image.png

就会保存在这块分区里面了。/newdisk只是一个目录,真正存放数据的地方还在在分区里。也可以把分区和目录的挂载关系去掉,将这个分区再挂在到别的目录上去,这个分区里面的文件还是存在的,image.png

设置自动挂载-永久挂载

用命令行挂载,重启后会失效。通过修改/etc/fstab实现永久挂载,添加完之后,mount -a 即刻生效或reboot重启服务器也会生效。

image.png

添加sdb1与newdisk的关联关系,

image.png

如果不写sdb1的uuid,也可以直接写/dev/sdb1。启动的时候,会查询这个表 ,发现有这个挂载关系就会自动挂载。

image.pngimage.png

如果分区空间不够了,就要增加相应的分区和硬盘来保障系统正常运行。通过这个表可以看到目前磁盘的使用情况也是正常的,使用率在80%以上 就不正常了,把不需要的文件清一清或者增加相应的硬盘。

分类:
后端
标签:
收藏成功!
已添加到「」, 点击更改