内存与磁盘管理
-
内存和磁盘使用率查看
常用命令- 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
- ext4文件系统基本结构
-
磁盘配额的使用
- 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 保存后退出,下次开机时就会自动挂载
- fdisk
-
交换分区(虚拟内存)查看与创建
- 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 有几个磁盘就执行几次这样的操作,把磁盘名称换掉即可
- mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sdb1 /dev/sdc1
-
逻辑卷管理
逻辑卷和文件系统的关系
名词解释:- 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,查看网络流量,哪个端口占用最多
- 使用sar命令查看系统综合状态