Linux学习-内存与磁盘管理

内存与磁盘管理

  • 内存和磁盘使用率查看
    常用命令

    • free 显示内存总的大小,-m以多少m显示,-g以多少g显示。主要查看used使用了多少,available还有多少可用。若开始往swap中写入内存,则说明内存真的不足了,需要扩大。
    • top 查看进程的消息,以及内存的状态和实时变化

    查看命令

    • fdisk 即可以查看磁盘,又能对磁盘分区
      • fdisk -l 查看磁盘具体信息
      • ls -l /dev/sd* 查看具体的磁盘,磁盘是块设备,最好谨慎操作。Liunx 划分大小是以扇区进行区分
      • parted -l 查看磁盘具体信息
    • df
      • df -h 查看具体的分区和挂载的目录,使用场景,查看磁盘是否满了
    • du
      • du /etc/passwd 查看某个文件真实的大小
    • du 与 ls 的区别,du 读取的是文件真实占用的大小,ls 读取的整体文件所占用的大小,该文件可能包含一些空洞存储来用于其它用途
  • ext4文件系统
    (其他常见的文件系统还有:xfs,NTFS(移动硬盘的文件格式,需安装额外软件)

    • ext4文件系统基本结构
      • 超级块 记录整个系统/分区包含了多少个文件,所有文件的总数。这些都是超级块事先统计好的
      • 超级块副本 多份,超级块的备份
      • i 节点(node) 记录每一个文件的名称、大小、编号、权限,文件名没有记录在i节点,记录在自己文件的父目录的i节点里面
      • 数据块(datablock) 记录数据,默认大小是4k,以链接式方式记录。i节点中能够以一个数据块存储,就在i节点后挂载一个数据块,不够的话就第二、三块...ls 其实是查看i节点的大小,du是查看具体数据块的大小。
    • 相关常用命令
      • touch afile 创建文件
      • ls -li afile 查看文件的大小、权限、属主/组及编号
      • 使用mv改名或移动文件的原理:在本地目录对文件进行改名,与i节点和数据块没有什么影响,只是改了目录里面去记录i节点和文件名的对应关系,所以速度很快;若是跨分区进行移动和改名,则i节点和数据块都会改动,会占用跟多时间;在本地分区中进行操作,因为i节点和数据块是由整个文件系统去管理的,所以在当前文件系统里面做移动,速度也很快,只是改了指定目录文件名称的链接。
      • vim 编辑文件时,会对文件的i节点和数据块进行修改,而echo > 追加输入,只是对数据块进行修改。
      • rm 让文件名和i节点的链接断开,释放数据块
      • ln 让更多的文件名指向i节点,但不能夸分区使用,但可以使用软链接方式。ln也叫符号链接。
        • ln -s afile aafile afile与aafile的i节点不同。符号链接可以进行夸分区操作
      • facl 文件访问控制列表
        • getfacl afile 查看文件的所属的用户/组的权限
        • setfacl -m(赋予权限)/-x(回收权限) u(用户)/g(组):user1(用户名):r(要赋予的权限) afile
  • 磁盘配额的使用

    • xfs 文件系统的用户磁盘配额 quota,限制的是用户创建文件的个数
    • fdisk /dev/sdb 对某个硬盘进行分区
    • mkfs.xfs /dev/sdb1 对分区进行格式化,若分区中以前存在文件,则使用-f操作强制进行覆盖 mkfs.xfs -f /dev/sdb1
    • mkdir -p /mnt/disk1 创建挂载的目录,-p 目录不存在则创建,存在则不操作
    • mount -o uquota,gquota /dev/sdb1 /mnt/disk1 -o 使用默认配置,uquota,gquota 支持用户和组磁盘配额
    • chmod 1777 /mnt/disk1 赋予权限,1777 只有创建者才有权限操作该文件
    • xfs_quota -x -c 'report -ugibh' /mnt/disk1 -x -c 使用不交互模式,'report -ugibh'要执行的命令,查看报告,u用户g组i节点b块h人性化的方式
    • xfs_quota -x -c 'limit -u isoft=5 ihard=10 user1' /mnt/disk1 对用户进行磁盘配额限制,limit 命令进行限制,isoft 软限制,达到相应的值后允许超出一部分进行使用,ihard硬限制,达到相应的值后就无法再增加了,user1 对user1用户进行限制
  • 磁盘的分区与挂载
    常用命令

    • fdisk
      • fdisk -l 查看分区情况
      • fdisk /dev/sdc 创建分区,分区前确保硬盘没有数据,会进行格式化
      • 常用命令:m 帮助,p 打印分区,d 删除分区,n 添加新分区,w 保存分区并退出,q 不保存退出
    • mkfs
      • mkfs.ext4 /dev/sdc1 映射成盘符,格式化成ext4文件系统
      • mkdir /mnt/sdc1 创建一个目录,挂载新的分区
      • mount /dev/sdc1 /mnt/sdc1 进行挂载,mount命令会自动检查系统,此命令只是临时进行挂载,若要参数进行固化,修改/etc/fstab
    • parted 分区若大于2t时使用parted进行分区,通过help获取帮助
    • mount

    常见配置文件

    • /etc/fstab
      • vim /etc/fstab 在末尾增加 /dev/sdc1 /mnt/sdc1 ext4 defaults 0 0 保存后退出,下次开机时就会自动挂载
  • 交换分区(虚拟内存)查看与创建

    • free -m 查看内存与交换分区使用情况
    • swapon -s 查看当前交换分区的详细信息
  • 扩充分区的两种方法:

    • 增加交换分区的大小

      • mkswap前需要有一个空的硬盘,对其进行分区,才能给swap扩充分区
      • mkswap /dev/sdd1 对分区进行格式化,设置了一个mkswap标记
      • swapon /dev/sdd1 打开分区
      • swapoff /dev/sdd1 还原分区,扩充的部分都还原回去
    • 使用文件制作交换分区

      • dd if=/dev/zero bs=4M count=1024 of=/swapfile
      • chmod 600 /swapfile 改变文件的权限
      • swapon /swapfile
    • 要想使swap的分区永久生效,要在 /etc/fstab 中添加设置

      • vim /etc/fstab
      • 在/etc/fstab 最后一行添加 /swapfile swap swap defaults 0 0 挂载到虚拟的目录swap
  • 软件 RAID 的使用,RAID 磁盘阵列,可以把多个磁盘组合起来使用

  • RAID 常见级别及含义

    • RAID 0 striping 条带方式,提高单盘吞吐率;把文件拆成两份,放到两个不同磁盘
    • RAID 1 mirroing 镜像方式,提高可靠性;写入文件时,系统会在另外一个磁盘进行备份
    • RAID 5 有奇偶校验;至少要有三块磁盘,前两个写入数据,第三个写前两个磁盘的奇偶校验,当前面其中一个磁盘损坏,利用第三个磁盘的奇偶校验恢复数据。
    • RAID 10 是RAID 1 与 0 的结合
  • 软件RADI的使用

    • mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sdb1 /dev/sdc1
      C创建磁盘阵列,-l1表示级别,-n2表示有几块磁盘是活动的
    • mdadm -D /dev/md0 查看信息
    • echo DEVICE /dev/sd[b, c]1 >> /etc/mdadm.conf 下次开机时,RADI才会被加载
    • mdadm -Evs >> /etc/mdadm.conf 追加RADI的属性,下次开机时才会生效
    • mkfs.xfs /dev/md0 对RADI 进行格式化
    • mdadm --stop /dev/md0 停止RADI,停止还不够,需要对组合的磁盘进行“破坏”
    • dd if=/dev/zero of=/dev/sdb1 bs=1M count1 有几个磁盘就执行几次这样的操作,把磁盘名称换掉即可
  • 逻辑卷管理
    逻辑卷和文件系统的关系
    名词解释:

    • LVM(Logical Volume Manager),逻辑盘卷管理,是 Linux 下对磁盘分区进行管理的一种机制。LVM 是建立在磁盘分区和文件系统之间的一个逻辑层,系统管理员可以利用 LVM 在不重新对磁盘分区的情况下动态的调整分区的大小。
    • 物理存储介质(The physical media)
      指系统的存储设备:硬盘,如:/dev/sda、/dev/sdb 等等,是存储系统最低层的存储单元。
    • 物理卷(PV physical volume)
      物理卷就是指硬盘分区或从逻辑上与磁盘分区具有同样功能的设备(如RAID),是LVM的基本存储逻辑块,但和基本的物理存储介质(如分区、磁盘等)比较,却包含有与LVM相关的管理参数。
    • 卷组(VG Volume Group)
      LVM 卷组类似于非 LVM 系统中的物理硬盘,其由物理卷组成。可以在卷组上创建一个或多个“LVM分区”(逻辑卷),LVM卷组由一个或多个物理卷组成。
    • 逻辑卷(LV logical volume)
      LVM的逻辑卷类似于非LVM系统中的硬盘分区,在逻辑卷之上可以建立文件系统(比如/home或者/usr等)。
    • PE(physical extent)
      每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是可以被LVM寻址的最小单元。PE的大小是可配置的,默认为4MB。
    • LE(logical extent)
      逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

    为Linux创建逻辑卷

    • fdisk -l 或者 fdisk -l /dev/sd?? 添加硬盘(进行分区)和查看硬盘信息
    • pvcreate /dev/sbd1 /dev/sdc1 /dev/sdd1 组成物理卷
    • pvs 查看物理卷信息
    • vgcreate vg1 /dev/sdb1 /dev/sdc1 创建卷组
    • vgs 查看卷组信息
    • lvcreate -L 100 -n lv1 vg1 -L 指定大小,-n 逻辑卷名称,vg1从哪个卷组创建
    • lvs 查看逻辑卷信息
    • mkdir /mnt/test
    • mkfs.xfs /dev/vg1/lv1 将逻辑卷格式化,xfs文件类型
    • mount | grep root 查看根目录挂载到哪个lv下面

    动态扩容逻辑卷

    • vgs 和 lvs 先查看卷组和逻辑卷的信息
    • vgextend centos /dev/sdd1 给卷组扩充
    • lvextend -L +10G /dev/centos/root 给逻辑卷扩充
    • xfs_growfs /dev/centos/root 告诉文件系统,下面的逻辑卷扩大了,你也要更新了
    • df -h
  • 系统综合状态查看

    • 使用sar命令查看系统综合状态
      • sar -u 1 10 -u查看cup状态,每隔1秒进行查看,查10次
      • sar -r 1 20 -r查看内存
      • sar -b 1 10 -b查看IO
      • sar -d 1 10 -d查看每块磁盘的读写
      • sar -q 2 10 查看进程的使用
    • 使用第三方命令查看网络流量
      • yun install epel-release
      • yun install iftop
      • iftop -p 查看网络状态,默认监听eth0,查看网络流量,哪个端口占用最多
原文地址:https://www.cnblogs.com/chenri/p/12590419.html