美文网首页
【Linux基础】内存和硬盘管理

【Linux基础】内存和硬盘管理

作者: 清梦载星河 | 来源:发表于2020-02-23 23:13 被阅读0次

    1. 内存和硬盘使用率查看

    查看内存使用率

    • 常用命令:
      • free
      • top

    查看硬盘使用率

    • 常用命令:
      • fdisk
        • fidsk -l:查看硬盘分区信息
      • df:类似fdisk,但会显示挂在目录
      • du:查看文件实际大小(ls查看的是inode信息,du查看数据块信息)

    2. 文件系统

    常见Linux文件系统:ext4, xfs, btrfs

    ext4文件系统

    相关概念:

    • 超级块:文件产生变动时候,超级块就会更新
    • 超级块副本
    • i节点(inode):使用ls -i查看inode编号
    • 数据块(datablock):用于记录数据(如果将inode比作火车头,那么数据块就是车厢)
    • 链接:
      • 硬链接:
        • 指向同一个inode
        • 无法跨文件系统
      • 软链接:
        • 指向不同的inode
        • 可以跨文件系统
    • 文件访问控制:
      • getfacl
      • setfacl
        • -m:赋予权限
        • -x:撤回权限
        • 示例:setfacl -m u:user1:rw tmpfile(对用户user1赋予tmpfile文件可读写的权限)

    3. 硬盘的分区与挂载

    常用命令:

    • fdisk
    • mkfs
    • parted
    • mount

    常见配置文件

    • /etc/fstab

    大致步骤:假设新添加了一块硬盘,设备名为/dev/sdb:

    1. 分区
      1. fdisk /dev/sdb(如果大于2TB,则需要使用parted,而不是fdisk)
      2. 在fdisk终端按“m”获取帮助
      3. 按“n”添加新分区(一路按回车键就是默认全盘分一个区)
      4. 按“w”保存分区信息(新分区被命名为sdb1)
    2. 格式化
      1. 如果分区大小小于2TB,可以使用mkfs;若大于,则使用parted;
      2. mkfs.ext4 /dev/sdb1,将新分区格式化为ext4
    3. 挂载
      1. mkdir -p /mnt/sdb1
      2. mount -t ext4 /dev/sdb1 /mnt/sdb1,挂载到/mnt/sdb1,中间“-t ext4”可不加,mount会自动识别文件系统。
      3. 注意:上一步的挂载只是暂存在内存中,需要编辑/etc/fstab文件,在最后新起一行添加“/dev/sdb1 /mnt/sdb1 ext4 defaults 0 0”,使得挂载固化。

    4. XFS文件系统的用户硬盘配额

    XFS有个名为quota的设置,可以对用户硬盘配额进行简单的设置。大致操作步骤如下:

    1. 分区(不赘述了)
    2. 格式化(使用mkfs.xfs格式化分区)
    3. 挂载:
      1. mkdir -p /mnt/sdb1
      2. mount -o uquota,gquota /dev/sdb1 /mnt/sdb1
      3. xfs_quota -x -c 'report -ugib' /mnt/sdb1,查看“/mnt/sdb1”的磁盘配额,报告用户配额、用户组配额,inode和block。
      4. xfs_quota -x -c 'limit -u isoft=5 ihard=10 user1' /mnt/sdb1,对user1进行硬盘配额限制,使用5个inode时提示,最多使用10个inode。

    5. 交换分区的查看与创建

    使用free命令查看swap大小。

    使用分区方式扩充swap

    1. 分区(不赘述了)
    2. mkswap /dev/sdb1,将/dev/sdb1格式化为swap
    3. swapon /dev/sdb1,启用新swap分区(使用swapoff关闭指定swap分区)

    使用文件扩充swap

    1. dd if=/dev/zero bs=4M count=1024 of=/swapfile,制作一个4G大小的空文件
    2. mkswap /swapfile,格式化(有的发行版可能会在这一步报错,提示不安全)
    3. chmod 600 /swapfile,修改/swapfile的权限
    4. swapon /swapfile,启用新swap分区

    固化新swap

    1. 编辑/etc/fstab文件
    2. 以文件方式扩充swap为例:在fstab文件底部添加/swapfile swap swap defaults 0 0

    6. 软件RAID的使用

    常见RAID方式:

    • RAID 0:至少需要两块硬盘,数据分别存在两块盘上,可以提高单盘吞吐率,缺点是不安全;
    • RAID 1:至少需要两块硬盘,数据以镜像方式保存,可以提高可靠性;
    • RAID 5:至少需要三块硬盘,前两块做数据盘,第三块做校验盘,相当于RAID 0和RAID 1的简单折中方案;
    • RAID 10:至少需要四块硬盘,假设ABCD四个盘,A、B做RAID 1,C、D也做RAID 1,然后AB和CD做RAID 0,兼顾速度和可靠。

    软RAID操作方式

    1. 安装 mdadm 软件
    2. mdadm -C /dev/md0 -a yes -l1 -n2 /dev/sd[b,c]1,创建软RAID(如果提示不支持boot启动,输入“y”同意即可)
      1. -C:创建
      2. /dev/md0,创建后的设备文件
      3. -a yes,创建过程中的一些选项全部yes;
      4. -l1:RAID级别为1;
      5. -n2:活动硬盘为2个;
      6. /dev/sd[b,c]1:指定组成RAID的硬盘是sdb1和sdc1。
    3. mdadm -D /dev/md0,查看/dev/md0;
    4. mkfs.xfs /dev/md0,格式化……
    5. 停止RAID:mdadm --stop /dev/md0

    7. 逻辑卷管理

    逻辑卷与文件系统的关系

    逻辑卷就相当于将所有硬盘虚拟成一块硬盘,有点像RAID。

    为Linux创建逻辑卷

    1. 假设有三块硬盘,且已分区;
    2. pcvcreate /dev/sd[b,c,d]1,创建pv;
    3. 使用命令pvs查看
    4. vgcreate vg1 /dev/sdb1 /dev/sdc1,将sdb1和sdc1加入新建的卷组vg1;
    5. 使用vgs查看卷组;
    6. lvcreate -L 100M -n lv1 vg1,在卷组vg1上创建大小为100M的逻辑卷lv1;
      1. -L:设置逻辑卷的大小;
      2. -n:设置逻辑卷的名字;
      3. vg1:指定卷组。
    7. 使用命令lvs查看逻辑卷;
    8. 格式化与挂载:
      1. mkfs.xfs /dev/vg1/lv1
      2. mkdir /mnt/tmp1
      3. mount /dev/vg1/lv1 /mnt/tmp1(如果要保存,需要写入fstab文件)

    动态扩容逻辑卷

    1. vgextend vg1 /dev/sdd1,将sdd1加入vg1;
    2. lvextend -L +10G /dev/vg1/lv1,为逻辑卷lv1扩充10G;
    3. xfs_growfs /dev/vg1/lv1,让xfs文件系统更新;(ext4使用resize2fs

    8. 系统综合状态查看

    使用sar命令查看系统综合命令

    示例:sar -u 1 10:每1秒采样一次CPU的信息,总共采集10次。

    • -u:查看CPU
    • -r:查看内存
    • -b:查看IO
    • -d:查看硬盘
    • -q:查看进程

    使用第三方命令查看网络流量(如iftop

    • 由于sar命令无法监测网络流量,所以可以安装iftop,借助iftop查看网络流量。

    相关文章

      网友评论

          本文标题:【Linux基础】内存和硬盘管理

          本文链接:https://www.haomeiwen.com/subject/tjweqhtx.html