Brc's blog
首页
前端
后端
运维
  • 工作笔记
  • 分类
  • 标签
  • 归档
关于

Brc

努力中
首页
前端
后端
运维
  • 工作笔记
  • 分类
  • 标签
  • 归档
关于
  • Linux基础

    • Bash shell
    • 文件属性
    • 编辑工具vim
    • 用户管理
    • 用户组管理
    • 普通用户提权
    • 基础权限
    • 特殊权限
    • 文件特殊属性
    • IO重定向
    • 文件查找
    • 文件压缩
    • 软件包管理

    • 磁盘管理

      • 磁盘管理
        • 磁盘命名
          • 物理服务器
          • 虚拟服务器
        • 磁盘分区
          • 为什么要分区
          • MBR分区
          • GPT分区
        • 分区管理
          • fdisk
          • gdisk
          • mkfs
        • 挂载管理
          • 临时挂载mount
          • 临时卸载umount
          • 永久挂载fstab
          • 永久挂载配置文件
          • 配置文件/etc/fstab
        • SWAP
          • 什么是SWAP
          • 为什么需要SWAP
          • SWAP基本应用
          • 扩展swap分区
          • 缩小swap分区
        • 文件系统修复
      • 磁盘阵列RAID
      • LVM
    • 进程管理
    • 计划任务
    • systemd
    • Supervisor
    • 网络管理

    • Chrony时间同步
    • NFS网络文件系统
  • Linux进阶

  • 其他

  • 运维
  • Linux基础
  • 磁盘管理
Brc
2021-07-11
目录

磁盘管理

# 磁盘命名

# 物理服务器

真实物理服务器

设备名称 分区信息 设备类型
/dev/sda /dev/sda1 第一块物理磁盘第一分区
/dev/sdb /dev/sdb2 第二块物理磁盘第二个分区
/dev/sdd /dev/sdd4 第四块虚拟磁盘的第四个分区

# 虚拟服务器

阿里云主机或者KVM虚拟化主机的磁盘命名格式

设备名称 分区信息 设备类型
/dev/vda /dev/vda1 第一块虚拟磁盘的第一个分区
/dev/vdb /dev/vdb2 第二块虚拟磁盘的第二个分区
/dev/vdc /dev/vdc3 第三块虚拟磁盘的第三个分区

# 磁盘分区

# 为什么要分区

  • 分区是为了便于数据分门别类的存储;
  • 分区有MBR、GPT两种方式;

# MBR分区

  • MBR分区仅能分配4个主分区,如果需要划分多个分区,需要先分配扩展分区,然后再分配逻辑分区
    • 为什么MBR分区仅能分配4个主分区?NBR只能划分4个主分区的原因 (opens new window)
    • 分区编号如何表示:1~4主分区使用和扩展分区,逻辑分区从5开始;

image-20211110150942366

# GPT分区

  • 对于MBR分区而言,只能分配4个主分区,但新型的分区表GPT理论上支持分配无限(128是windows系统的限制)个主分区
    • MBR与GPT有何区别?
    • 注意MBR与GPT之间不能互转,会导致数据丢失;

# 分区管理

# fdisk

  • fdisk仅支持分配小于2TB的磁盘
    • 查看当前设备fdisk -l
    • 对设备进行分区fdisk /dev/sdb
  • 分区命令
    • m:显示帮助
    • n:创建新分区
    • d:删除分区
    • p:查看分区
    • w:保存分区
    • q:退出
  • 分区案例:
    • 案例1:分配4个分区(4P)
    • 案例2:分配5个分区(1P+1E+4L)
    • 案例3:分配6个分区(3P+1E+3L)

# gdisk

  • gdisk支持分配大于2TB的磁盘
    • 查看当前设备gdisk [-l] device
    • 对设备进行分区gdisk /dev/sdb
  • 分区命令
    • ?:显示帮助
    • n:创建新分区
    • p:打印分区
    • w:保存分区
    • q:退出
  • 分区案例:
    • 案例1:分配4个主分区(4P)
    • 案例2:分配5个主分区(5P)
    • 案例3:分配6个主分区(6P)

# mkfs

  • mkfs命令用于格式化硬盘,类似于将房子装修成3室一厅,还是2室一厅

    • -b:设定数据区块占用空间大小,目前支持1024、2048、4096bytes每个块;
    • -t:用来指定什么类型的文件系统,可以是ext4、xfs;
    • -N:设定inode数量,防止inode数量不够导致磁盘不足;
  • 使用mkfs命令,格式化整个硬盘

    [root@web ~]# mkfs.ext4 /dev/sdb
    
    1
  • 使用mkfs命令,格式化磁盘的某个分区

    [root@web ~]# mefs.xfs /dev/sdb1
    
    1

# 挂载管理

当需要使用磁盘空间的时,需要准备一个目录作为挂载点,然后使用mount命令与该设备进行关联。

# 临时挂载mount

  • 通过mount进行挂载,但重启将会失效,我们称为临时生效。

    • -t:指定文件系统挂载分区;
    • -a:检查并且挂载/etc/fstab配置文件中未挂载的设备;
    • -o:指定挂载参数,ro、rw;
  • 挂载磁盘设备

    [root@web ~]# mkdir /db1
    [root@web ~]# mount -t xfs /dev/sdb1 /db1
    
    1
    2
  • 挂载磁盘设备,设置参数为仅可读

    [root@web ~]# mkdir /db2
    [root@web ~]# mount -t xfs -o ro /dev/sdb2 /db2
    [root@web ~]# touch /db2/new_file
    touch: cannot touch '/db2/new_file': Read-only file system
    
    1
    2
    3
    4

# 临时卸载umount

  • 如果不想使用可以使用umount [device|directory]进行临时卸载;

  • -l:强制卸载;

  • 卸载入口目录示例;

    [root@web ~]#umount /db1
    
    1
  • 卸载设备方式示例;

    [root@web ~]# umount /dev/sdb1
    
    1
  • 如碰到无法正常卸载情况处理;

    [root@web db1]# umount /db1
    umount: /db1: device is busy.
        (In some cases useful info about processes that use
        the device is found by lsof(8) or fuser(1)
    
    # 如上情况解决办法有两种,1.切换至其他目录 2.强制卸载
    [root@web db1]# umount -l /db1
    
    1
    2
    3
    4
    5
    6
    7

# 永久挂载fstab

如果需要实现永久挂载,则需要将挂载相关信息写入/etc/fstab配置文件中实现。

# 永久挂载配置文件

  • 配置文件规范:设备名称|挂载的入口目录|文件系统类型|挂载参数|是否备份|是否检查;
  1. 获取设备名称,或设备的UUID;

    [root@web ~]# blkid |grep "sdb1"
    /dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
    
    1
    2
  2. 手动挂载测试;

    [root@web ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1
    
    1
  3. 写入/etc/fstab测试;

    #手动编写
    [root@web ~]# tail -1 /etc/fstab
    UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs defaults 0 0
    
    #自动实现
    [root@web ~]# blkid |grep /dev/sda1 |awk -F '[: ]+' '{print $2}' |\
    sed -r 's#(.*)#\1 /db1 xfs defaults 0 0#g' >> /etc/fstab
    
    1
    2
    3
    4
    5
    6
    7
  4. 加载/etc/fstab配置文件,同时检测是否存在语法错误;

    [root@web ~]# mount -a
    
    1

# 配置文件/etc/fstab

  • /etc/fstab配置文件格式
    • 第一列:指定需要挂载的设备
      • 设备名称:/dev/sdb1;
      • 设备ID:UUID;
    • 第二列:挂载的入口目录
    • 第三列:文件系统类型
      • xfs类型;
      • ext4类型;
    • 第四列:挂载参数
      • async/sync:使用同步或异步方式存储数据;默认async
      • user/nouser:是否允许普通用户使用mount命令挂载;默认nouser
      • exec/noexe:是否允许可执行文件执行;默认exec
      • suid/nosuid:是否允许存在suid属性的文件;默认suid
      • auto/noauto:执行mount -a命令时,此文件系统是否被主动挂载;默认auto
      • rw/ro:是否以只读或者读写模式进行挂载;默认rw
      • default:具有rw,suid,dev,exec,auto,nouser,async等参数;
    • 第五列:是否要备份磁盘
      • 0:不做备份;
      • 1:每天进行备份操作;
      • 2:不定日期的进行备份操作;
    • 第六列:开机是否检验扇区
      • 0:不要检验磁盘是否有坏道;
      • 1:检验;
      • 2:校验(当1级别检验完成之后进行2级别检验);

# SWAP

# 什么是SWAP

Swap分区在系统的物理内存不够时,将硬盘中的一部分空间供当前运行的程序使用

# 为什么需要SWAP

当物理内存不够时会随机kill占用内存的进程,从而产生oom,临时使用swap可以解决

# SWAP基本应用

  1. 创建分区,并格式化为swap分区;

    [root@web ~]# fdisk /dev/sdb
    # 格式化为swap
    [root@web ~]# mkswap /dev/sdb1
    
    1
    2
    3
  2. 查看当前swap分区大小;

    [root@web ~]# free -m
            total	used	free	shared	buff/cache	available
    Mem:	1980	1475	80		10		424			242
    Swap:	2047	4		2043
    
    1
    2
    3
    4

# 扩展swap分区

  • 扩展swap分区,使用swapon命令

    • swapon device:将某个磁盘大小添加到swap分区中;

    • swapon -a:添加所有swap分区;

    [root@web ~]# swapon /dev/sdb1
    [root@web ~]# free -m
    		total	used	free	shared	buff/cache	available
    Mem:	1980	1475	80		10		424			242
    Swap:	3047	4		2043
    
    1
    2
    3
    4
    5

# 缩小swap分区

  • 缩小swap分区,使用swapoff命令

    • swapoff device:关闭某个磁盘的swap分区;

    • swapoff -a:关闭所有swap分区;

    [root@web ~]# swapoff /dev/sdb1
    [root@web ~]# free -m
    		total	used	free	shared	buff/cache	available
    Mem:	1980	1475	80		10		424			242
    Swap:	2047	4		2043
    
    1
    2
    3
    4
    5

# 文件系统修复

  • 在Linux系统中,为了增加系统性能,通常系统会将一些数据先写入内存中,然后再刷新至磁盘中;

  • 万一公司服务器突然断电或者其他未知原因,再次启动后,会造成文件系统错误;

    [root@web ~]# fdisk /dev/sdc			# 分配1G分区
    [root@web ~]# mkfs.xfs /dev/sdc1
    [root@web ~]# mount /dev/sdc1 /mnt
    [root@web ~]# echo "Hello" > /mnt/new.txt
    
    # 模拟损坏
    [root@web ~]# dd if=/dev/zero of=/dev/sdc bs=300M count=1
    [root@web ~]# umount /mnt
    [root@web ~]# mount /dev/sdc1 /mnt		# 无法挂载
    
    # 尝试修复
    [root@web ~]# xfs_repair /dev/sdc1
    
    # 强制修复
    [root@web ~]# xfs_repair -L /dev/sdc1
    
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
#Linux
Last Updated: 2024/03/12, 18:00:21
搭建yum仓库
磁盘阵列RAID

← 搭建yum仓库 磁盘阵列RAID→

最近更新
01
谷歌云创建GKE集群
07-26
02
ElastiCacheForRedis启用密码
07-26
03
upload-to-gcs
06-29
更多文章>
Theme by Vdoing | Copyright © 2021-2024 Brc | MIT License | 浙ICP备19031881号-4
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式