Linux磁盘介绍及LVM磁盘管理


磁盘基本概述

磁盘分类

  • 固态硬盘
  • 机械硬盘
  • 服务器硬盘

固态硬盘的优缺点

  • 优点:
    • 读写速度快
    • 防震抗摔性强
    • 低功耗
    • 无躁音
    • 体积小,携带方便
  • 缺点:
    • 容量比机械硬盘小
    • 寿命比机械硬盘短
    • 制造成本高所以价格比机械硬盘高

Linux磁盘命名方式

  • 传统IDE接口硬盘:/dev/hd[a-z]
  • SCISI接口硬盘:/dev/sd[a-z]
  • 虚拟化硬盘:/dev/vd[a-z]
  • 系统中分区由数字编号表示, 1-4留给主分区使用和扩展分区, 逻辑分区从5开始

MBR与GPT

MBR

  • MBRMaster Boot Record的简称,也就是主引导记录,是位于磁盘最前边的一段引导(Loader)代码,主要用来引导操作系统的加载与启动
  • 特点:
    • MBR支持最大2TB磁盘,无法处理大于2TB容量的磁盘
    • 只支持最多4个主分区。需要更多的分区,则需要创建拓展分区,并在其中创建逻辑分区

GPT

  • GPT磁盘是指使用GUID分区表的磁盘,GUID磁盘分区表(GUID Partition Table,缩写:GPT)其含义为“全局唯一标识磁盘分区表”,是一个实体硬盘的分区表的结构布局的标准
  • 特点:
    • GPT对磁盘的大小没有限制
    • 最多可以创建128个分区
    • 注意:MBR与GPT之间互相转换会导致数据丢失
    • 磁盘容量检查

df

  • 查看磁盘容量,不加参数以k为单位
  • 用法:df [选项]
  • 常用选项:
    • -i 查看inode使用情况
    • -h 显示单位
    • -T 查看文件类型

lsblk

  • 查看分区情况

du

  • 查看目录或文件的容量,不加参数以k为单位

  • 用法:du [选项]

  • 常用选项:

    • -s 列出总和
    • -h 显示单位

    一般sh连用

磁盘分区

fdisk分区(MBR)

  • fdisk -l 查看当前磁盘分区信息

  • fdisk 硬盘绝对路径 进入磁盘管理

  • 常用选项:
    m 显示帮助菜单
    n 新建分区
    d 删除分区
    p 显示分区表的信息
    u 修改容量单位,磁柱或扇区
    w 保存退出
    l 显示分区类型
    t 修改分区ID,可以通过l查看id
    q 不保存退出

  • 不常用的选项:
    a 切换分区启动标记
    b 编辑sdb磁盘标签
    c 切换dos兼容模式
    o 创建新的空白分区表
    s 创建新的Sun磁盘标签
    v 检验分区表
    x 拓展功能

//创建主分区
Command (m for help): n //新建分区
Partition type:
   p   primary (0 primary, 0 extended, 4 free)  //主分区
   e   extended //扩展分区
Select (default p): p   //选择主分区
Partition number (1-4, default 1):  //默认回车
First sector (2048-2097151, default 2048): //默认扇区回车
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-2097151, default 2097151): +50M //分配50MB

//创建扩展分区
Command (m for help): n //新建分区
Partition type:
   p   primary (1 primary, 0 extended, 3 free)
   e   extended
Select (default p): e   //创建扩展分区
Partition number (2-4, default 2):
First sector (104448-2097151, default 104448):
Using default value 104448
Last sector, +sectors or +size{K,M,G} (104448-2097151, default 2097151):    //默认划分所有空间给扩展分区

//创建逻辑分区
Command (m for help): n //新建分区
Partition type:
   p   primary (1 primary, 1 extended, 2 free)
   l   logical (numbered from 5)
Select (default p): l   //创建逻辑分区
Adding logical partition 5
First sector (106496-2097151, default 106496):
Using default value 106496
Last sector, +sectors or +size{K,M,G} (106496-2097151, default 2097151): +100M  //分配100MB空间

Command (m for help): p  //查看分区创建
Device Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048      104447       51200   83  Linux
/dev/sdb2          104448     2097151      996352    5  Extended
/dev/sdb5          106496      311295      102400   83  Linux

Command (m for help): w  //保存分区
The partition table has been altered!
Calling ioctl() to re-read partition table.
Syncing disks.

fdisk -l /dev/sdb | grep type 检查磁盘是否是MBR分区方式
yum -y install parted 安装parted
partprobe /dev/sdb 重载分区表

gdisk(GPT)

  • yum -y install gdisk 安装gdisk工具
gdisk /dev/sdb  //gdisk管理磁盘
Command (? for help): n     //创建新分区
Partition number (1-128, default 1):
First sector (34-2097118, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-2097118, default = 2097118) or {+-}size{KMGTP}: +500M //分配500M大小

Command (? for help): p //打印查看
Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048         1026047   500.0 MiB   8300  Linux filesystem

Command (? for help): w //保存分区
Do you want to proceed? (Y/N): y    //确认
OK; writing new GUID partition table (GPT) to /dev/sdb.
The operation has completed successfully.

fdisk /dev/sdb -l|grep type 检查磁盘是否是gpt格式
partprobe /dev/sdb 重载分区表

磁盘格式化

mkfs

  • 格式化磁盘,创建文件系统
  • 用法:mkfs [选项]
  • 常用选项:
    • -t 用来指定什么类型的文件系统,可以是ext3,ext4, xfs
    • -i 设定inode的大小
    • -b 设定数据区块占用空间大小,目前支持1024、2048、4096 bytes每个块
    • -N 设定inode数量,防止Inode数量不够导致磁盘不足
    • -L 预设该分区的标签label

mkfs.ext4 /dev/sdb1 格式化磁盘格式为ext4文件系统
mkfs -t ext4 /dev/sdb1 格式化磁盘格式为ext4文件系统

磁盘挂载

  • 临时挂载磁盘

  • mount挂载磁盘,实质是为文件系统指定访问入口

  • 用法:mount [选项]

  • 常用选项:

    • -t 指定文件系统挂载分区
    • -a 重新读取/etc/fstab配置文件的所有分区
    • -o 指定挂载参数
  • 永久挂载磁盘

[root@wj ~]# blkid |grep "sdb1"  //使用blkid命令获取各分区的UUID
/dev/sdb1: UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" TYPE="xfs"
[root@wj ~]# vi /etc/fstab  //将UUID写入配置文件,永久挂载, 开机自动挂载
[root@wj ~]# tail -1 /etc/fstab    
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1 xfs  defaults 0  0
[root@wj ~]# mount -a  //通过配置文件挂载

使用UUID挂载磁盘sdb1分区至于db1, 临时挂载
[root@wj ~]# mount UUID="e271b5b2-b1ba-4b18-bde5-66e394fb02d9" /db1

[root@wj ~]# mount –a  //加载fstab配置文件, 同时检测语法是否有错误
  • fstab配置文件
分区标识(UUID或设备名)                    挂载点 文件类型    挂载参数    不检查 不备份
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /db1     xfs     defaults    0     0

卸载挂载光盘

  • umount -lf 强制卸载
  • umount /db1 使用站点卸载

交换分区swap

  • Linux下的虚拟内存分区,交换分区一般指定虚拟内存的大小为实际内存的1~1.5倍

创建swapfile

[root@wj ~]# dd if=/dev/zero of=/opt/newdisk bs=5M count=1024
//if:指定源  一般写/dev/zero
//of:指定目标
//bs:定义块大小
//count:数量

格式化swap分区

[root@wj ~]# mkswap -f /opt/newdisk  //格式化swap分区

//检测当前swap分区情况
[root@wj ~]# free -m

//开启新建的swap分区
[root@wj ~]# swapon /opt/newdisk
[root@wj ~]# free -m

//关闭新建的swap分区
[root@wj ~]# swapoff /opt/newdisk
[root@wj ~]# free -m

清理日志

  • rm -rf access.log 会删除文件,但是此程序继续占用文件,不是放空间
  • > access.log 清空文件,释放空间

LVM磁盘管理

在这里插入图片描述

  • 物理卷(PV):把常规的块设备(硬盘,分区等可以读写数据的设备)通过pvcreate命令对其进行初始化,就成了物理卷
  • 卷组(VG):把多个物理卷的容量组成一个逻辑整体,可以从里面灵活分配容量
  • 逻辑卷(LV):从卷组中划分部分空间成为一个可以读写数据的逻辑单元。需要对其格式化然后挂载使用

LVM磁盘管理是RHCSA中必考的题目,所以这里也必须要掌握,如果打算考RHCSA的话,这里一定不能丢分。其实是比较简单的。

LVM管理

  • 创建lvm步骤:
    • 添加物理磁盘,创建物理卷
    • 创建卷组,将物理卷加入卷组
[root@wj ~]# pvcreat /dev/sdb  //将磁盘加入物理卷
[root@wj ~]# pvs  //检查pv创建情况
[root@wj ~]# vgcreate vg0 /dev/sdb  //创建名为vg0的卷组
[root@wj ~]# vgs  //检查卷组

在卷组中划分逻辑卷

[root@wj ~]# lvcreate -L 500M -n lv0 vg0  //创建逻辑分区,分区名称、指定大小,指定卷组
[root@wj ~]# lvscan  //检查逻辑卷

格式化逻辑卷

[root@wj ~]# mkfs.ext4 /dev/vg0/lv0  //格式化逻辑卷,指定文件系统为ext4文件系统

挂载使用

  • 临时挂载
[root@wj ~]# mkdir /lv0  //创建挂载点
[root@wj ~]# mount /dev/vg0/lv0 /lv0  //临时挂载
[root@wj ~]# df -h  //查看挂载情况
  • 永久挂载
[root@wj ~]# blkid | grep "lv0"  //查看lv0的UUID
/dev/mapper/vg0-lv0: UUID="df4360c5-ba72-4e5c-8d7d-ab3b0bfc9acc" TYPE="ext4"  //硬盘的UUID
[root@wj ~]# vi /etc/fstab  //将UUID及相关配置信息加入到配置文件中
UUID=e271b5b2-b1ba-4b18-bde5-66e394fb02d9 /lv0 ext4  defaults 0  0
[root@wj ~]# mount -a  //通过配置文件挂载

卷组管理

  • 拓展卷组,将新磁盘加入卷组
[root@wj ~]# pvcreate /dev/sdc  //新硬盘加入pv
[root@wj ~]# vgextend vg0 /dev/sdc  //使用vgextend拓展
  • 缩减卷组,将指定磁盘从卷组中删除(只有etx4可以缩减)缩减前后一定要强制检查文件类型
[root@wj ~]# vgreduce vg0 /dev/sdb  //将sdb从卷组中删除
  • 数据迁移卷组,同一卷组的磁盘才可以进行在线迁移(学习中用到的较少,实际工作中遇到的较多)
[root@wj ~]# pvs  //检查当前逻辑卷VG中pv使用情况
[root@wj ~]# pvmove /dev/sdb  //将sdb在线数据迁移至其他pv
[root@wj ~]# pvs  //检查是否将sdb数据迁移至sdc

逻辑卷管理

  • 逻辑卷扩展,逻辑卷的扩展取决于卷组中的容量,逻辑卷扩展的容量不能超过卷组的容量
    扩展lv逻辑卷
[root@wj ~]# vgs  //查看卷组情况
[root@wj ~]# lvextend -L +500M /dev/vg0/lv0  //给lv0增加500M,不带+号表示指定大小
[root@wj ~]# lvextend -l +50%FREE /dev/vg0/lv0  //分配磁盘池中50%给逻辑卷
  • 扩展fs文件系统
[root@wj ~]# xfs_growfs /dev/vg0/lv0  //xfs扩容
[root@wj ~]# resize2fs /dev/vg0/lv0  //ext扩容
  • ext4文件系统的逻辑卷剪裁容量
[root@wj ~]# lvcreate  -n lv1 -L 1G vg0  //创建逻辑卷名称为lv1、大小1G、指定卷组vg0
[root@wj ~]# mkfs.ext4 /dev/vg0/lv1  //将lv1格式化为ext4的文件系统
[root@wj ~]# mkdir /lv1  //创建挂载点
[root@wj ~]# mount /dev/vg0/lv1  /lv1  //临时挂载
[root@wj ~]# cp /etc/host* /finance/uplooking/

[root@wj ~]# umount /dev/vg0/lv1  //如果已经挂载,必须先卸载
[root@wj ~]# e2fsck -f /dev/vg0/lv1  //检测文件系统
[root@wj ~]# resize2fs /dev/vg0/lv1 512M 

[root@wj ~]# lvreduce  -L 512M /dev/vg0/lv1   //指定大小
[root@wj ~]# e2fsck -f /dev/vg0/lv1  //裁剪后,再次检测文件系统
挂载测试。如果能够挂载,一般说明裁剪成功,文件系统没有损坏
[root@wj ~]# mount /dev/vg0/lv1 /mnt  //挂载
  • 缩减逻辑卷注意事项:
    • 不能在线缩减,得先卸载;
    • 确保缩减后的空间大小依然能存储原有的所有数据;
    • 在缩减之前应该先强行检查文件,以确保文件系统处于一致性状态。使用命令e2fsck -f 逻辑卷路径
以上内容均属原创,如有不详或错误,敬请指出。
本文作者: 坏坏
发布了21 篇原创文章 · 获赞 7 · 访问量 2824

猜你喜欢

转载自blog.csdn.net/qq_45668124/article/details/104602513
今日推荐