Linux磁盘管理

目录

一、磁盘简介

(一)、认知磁盘

 (二)、磁盘分区方式

二、基本分区

1、fdisk

2、gdisk创建分区

3、创建文件系统(格式化)

4、挂载mount使用

5、查看磁盘挂载与磁盘使用空间

6、取消挂载

三、开机自动挂载

1、/etc/fstab文件实现开机的时候自动挂载

2、/etc/rc.d/rc.local开机自动挂载

四、文件系统分类

1、分类

 2、概念

3、EXT

4、XFS

五、LVM逻辑卷

1、LVM管理

2、创建LVM

3、制作文件系统并挂载

4、LVM逻辑卷扩容

5、LVM逻辑卷缩容

六、交换分区

1、查看当前的交换分区

2、增加交换分区

七、mount详解

八、磁盘阵列

1、RAID介绍

raid0        --数据条带卷

raid1        --镜像raid

raid5

RAID 6

RAID 10        --先做镜像再作条带(混合raid)

2、制作磁盘阵列

3、raid 5删除操作


一、磁盘简介

(一)、认知磁盘
1、磁盘分类

机械:HDD

固态:SSD

HDD内部结构

  • 盘片(Platters):机械硬盘通常有多个盘片组成,每个盘片都是一个圆形的金属或玻璃基板,上面涂油磁性材料。
  • 磁头(Read/Write Heads):每个盘片都有两个磁头,一个用于读取数据,另一个用于写入数据。磁头位于盘片上方和下方,通过磁性浮动臂和驱动器来移动。
  • 磁道(Tracks):盘片被划分为多个同心圆轨道,称为磁道。每个磁道可以存储一定量的数据。
  • 扇区(Spindle):盘片通过主轴连接在一起,并由电机驱动主轴转动。通常,硬盘的转速以每分钟转数(RPM)来表示,如5400RPM、7200RPM或10000RPM。
  • 磁头臂(Actuator Arm):磁头臂是一个可移动的机械臂,上面安装有磁头。它通过电机和控制器的控制,可以在盘片上移动磁头。
  • 磁头定位器(Head Positioner):磁头定位器负责精确定位磁头在盘片上的位置。它使用电磁力将磁头臂移动到正确的磁道上。
  • 控制器(Controller):硬盘上的控制器是一个电子设备,负责控制硬盘的操作。他管理磁头的移动、数据的读写、错误检测和纠正等功能。

与传统硬盘相比,SSD固态电子盘具有的优势

SSD采用电子存储介质进行数据存储和读取的一种技术,拥有极高的存储性能,被认为是存储技术发展的未来新星。

第一、SSD完全的半导体化,不存在数据查找时间、延迟时间,数据存储速度快。

第二、SSD全部采用闪存芯片,经久耐用,防震抗摔,即使发生与硬物碰撞,数据丢失的可能性也能降到最低。

第三、得益于无机械部件及闪存芯片,SSD没有任何噪音,功耗低。

第四、质量轻,比常规1.8英寸硬盘重量轻20-30克,使得便携设备搭载多块SSD成为可能。

 2、硬盘尺寸

LFF,3.5寸,一般见到的那种台式机硬盘的大小

2.5寸

1.8寸

3.5寸不可以更换为2.5寸的小硬盘,但2.5寸的却可以更换为3.5寸的

3、插拔方式

热插拔

非热插拔 

4、硬盘接口

IDE=133MB/S,并行接口,早期家用电脑“并口”;

SATA(Serial ATA),SATA=6G,数据端口与电源端口是分开的,所以需要两条线,一条数据线,一条电源线;(长的电源线,短的数据线)"串口",支持热插拔;

SCSI,649MB/S,并行接口,早期服务器(小型计算机的接口);

SAS代替了scsi(Serial Attached SCSI),当前SAS接口居多 ,SAS=6G,电源线与数据线是一体化的,SATA标准是SAS标准的一个子集,两者是兼容关系,SATA硬盘可以插到SAS主板上,反之则不行;

 5、硬盘设备命名

物理硬盘        /dev/sd[a-z]

KVM虚拟化:

/dev/vd[a-z]        (半虚拟化驱动)

/dev/sd[a-z]        (全虚拟化驱动)

 (二)、磁盘分区方式

分区的目的:文件分类,将一块硬盘分成几个小块。用来根据使用存放不同的文件。

MBR格式

分区命令:fdisk

一共可以分4个主分区(4个主分区,扩展分区,逻辑分区) 例如:3主 +1扩展 (n逻辑)

MBR 只能分小于2TB的硬盘。

一块硬盘最多分4个主分区。也可以划分3个主分区和一个扩展分区,扩展分区下面可以划分多个逻辑分区。

GPT格式 

分区命令:gdisk(parted---rhel6)

一共可以分128个主分区

GPT大于小于2TB都可以。最大超过目前硬件可以支撑的硬盘大小。

GPT格式分区就不存在扩展分区、逻辑分区的概念。

#注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!因为转换格式要格式化硬盘。

二、基本分区

首先给关机状态的虚拟机添加磁盘

 

这里在添加硬盘时多添加几块,方便后续练习实验;

[root@localhost ~]# lsblk        #查看磁盘设备。当硬盘已经被添加,但是还没有格式化没有挂载的时候,使用lsblk查看硬盘信息;

NAME:                   设备的名称

MAJ:MIN                主设备号:次设备号

RM:                        设备是否可移动。0表示不可移动设备,1表示制度设备。

TYPE:                     设备的类型。常见的类型包括disk(硬盘)、part(分区)、rom(制度存储设备)等。

1、fdisk

        MBR 14个分区(4个主分区,扩展分区,逻辑分区)

[root@localhost ~]# fdisk -l  /dev/sdb                 #查看磁盘分区信息

[root@localhost ~]# fdisk /dev/sdb                     #开始分区

  • m:查看帮助
  • n:新建分区
  • w:保存退出
  • p:打印分区信息
parteprobe /dev/sdb        #更新磁盘分区表,手动让内核更新分区表。不需要重启;

lsblk                        #查看磁盘设备

        如果在创建三个主分区后需要一个以上的分区,那么就需要在第二步的时候选择创建扩展分区,然后在扩展分区的基础上创建逻辑分区,这样就可以满足创建更多分区的需求;

MBR与GPT分区格式转换的方法:

[root@lnmt ~]# parted -s /dev/sdb malabel gpt        #将/dev/sdb(MBR)格式转化成为(GPT)格式

[root@lnmt ~]# parted -s /dev/sdb malabel msdos        #将/dev/sdb(GPT)格式转化成(MBR)格式
2、gdisk创建分区
[root@lnmt ~]# yum -y install gdisk        #安装分区工具

[root@lnmt ~]# gdisk -l /dev/sdb                #查看磁盘分区信息

[root@lnmt ~]# gdisk /dev/sdb                #开始分区

[root@lnmt ~]# partprobe /dev/sdb        #刷新分区表
3、创建文件系统(格式化)
[root@lnmt ~]# mkfs.ext4 /dev/sdb1    #格式化成ext4格式的文件系统
[root@lnmt ~]# mkfs.xfs /dev/sdb2    #格式化成xfs格式的文件系统
4、挂载mount使用
[root@lnmt ~]# mkdir /mnt/disk1    #创建挂载目录
[root@lnmt ~]# mount /dev/sdb1 /mnt/disk1/    #挂载
5、查看磁盘挂载与磁盘使用空间

-T        打印文件系统类型

-h        人性化显示,磁盘空间大小

6、取消挂载
[root@lnmt ~]# umount /mnt/disk1    #卸载硬盘
[root@lnmt ~]# umount -l /mnt/disk1    #强制卸载硬盘,即使目录有资源被进程占用,也可以卸载
[root@lnmt ~]# fuser 挂载点    #查找占用文件的进程pid然后杀死,再进行卸载

三、开机自动挂载

1、/etc/fstab文件实现开机的时候自动挂载
[root@lnmt ~]# blkid /dev/sdb1    #查看uuid和文件系统类型
/dev/sdb1: UUID="5be2ae51-a819-47e0-aeb6-eb75dcd0b6f4" TYPE="ext4"
[root@lnmt ~]# vim /etc/fstab
    UUID=5be2ae51-a819-47e0-aeb6-eb75dcd0b6f4  /mnt/disk1  ext4   defaults    0 0

参数解释:

第一列:挂载设备

        (1)/dev/sdb1

        (2)UUID=设备的uuid     RHEL6/7的默认写法,同一台机器内唯一的一个设备标识

第二列:挂载点

第三列:文件系统类型

第四列:文件系统属性

第五列:是否对文件系统进行磁带备份:0        #不备份

第六列:是否检查文件系统:0        #不检查

[root@lnmt ~]# mount -a    #自动挂载
2、/etc/rc.d/rc.local开机自动挂载

这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次。也就是说,如果有任何需要在系统启动时运行的工作,则只需写入 /etc/rc.d/rc.local 配置文件即可;

[root@lnmt ~]# vim /etc/rc.d/rc.local
    mount /dev/sdb1 /mnt/disk1/
[root@lnmt ~]# chmod +x /etc/rc.d/rc.local    #添加执行权限
[root@lnmt ~]# reboot

四、文件系统分类

1、分类

本地文件系统,不能在网络上用——ntfs、xfs、ext2、ext3、ext4、fat32

网络文件系统,也可以在本地使用——nfs、glusterfs、hdfs、ceph

 2、概念

作用:管理文件的一套系统。文件的编辑,拷贝,粘贴,移动等;

理解inode:inoed块、i节点--索引节点。专门存储inode信息。也就是是文件的属性-(也叫元信息).它是文件或目录在磁盘里的唯一标识,linux读取文件首先要读取到这个索引节点,每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

inode内容

文件的字数

文件拥有者的user id

文件的group id

文件的读、写、执行权限

我呢见的时间戳,共有三个:ctime(最近访问),mtime(最近改动),atime(最近更改)

链接数,即有多少文件指向这个inode

查看inode信息

[root@lnmt ~]# stat /etc/hosts

[root@lnmt ~]# ls -i /etc/hosts    #-i:查看inode号
    18003023 /etc/hosts
3、EXT

EXT        家族支持度最广:andirons

但创建文件系统(格式化)慢!

修复慢!

文件系统存储容量有限

4、XFS

XFS        同样是一种日志式文件系统:

高容量,支持大存储

高性能,创建/修复文件系统快

格式化快

五、LVM逻辑卷

1、LVM管理

LVM概念:LVM是Linux环境中对磁盘分区进行管理的一种机制,是建立在硬盘和分区之上,文件系统之下的一个逻辑层,可提高磁盘分区管理的灵活性。

LVM的特点

#传统分区的缺点:

传统的文件系统是基于分区的,一个文件系统对应一个分区。这种方式比较直观,但不宜改变。当一个分区空间已满时,无法对其扩充,只能采用重新分区/建立文件系统,非常麻烦;或把分区中的数据移到另一个更大的分区中。

#当采用LVM时:

1,将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;

2,当硬盘空间不足而加入新的硬盘时,不必将数据从原硬盘迁到新硬盘,而只需把新的分区加入卷组并扩充逻辑卷即可。

3,文件系统建立在LVM上,可以跨分区,方便使用;

#使用LVM主要是方便管理、增加了系统的扩展性。可以跨分区,多个硬盘组合。

2、创建LVM

首先准备添加3块磁盘:可以是/dev/sdb这种没有分区的也可以是/dev/sdb这种已经分区了的

注意:如果没有pv命令,安装    #yum -y install lvm2

[root@localhost ~]# pvcreate /dev/sdb    #创建pv
[root@localhost ~]# pvs / pvscan / pvdisplay   #三种查看pv的方法

以上是第一步,创建物理卷;

[root@localhost ~]# vgcreate vg1 /dev/sdb    #创建卷组,这里还可以-s来指定创建分区的PE大小
[root@localhost ~]# vgs / vgscan / vgdisplay    #查看卷组

第二步:创建卷组;

[root@localhost ~]# lvcreate -L 2G -n lv1 vg1    #创建lv
[root@localhost ~]# lvcreate -l 200 -n lv2 vg1    #采用PE的方式创建一个lv
[root@localhost ~]# lvcreate -l free PE -n lv2 vg1     #PE的另一种写法
[root@localhost ~]# lvs / lvscan / lvdisplay #查看lv的三种命令

第三步:创建lv,这里我用了三种命令创建了三个lv;

-L:指定lv的大小;

-n:给创建的lv起一个名字;

-l 200 :指定PE数量来制定lv大小;

3、制作文件系统并挂载
[root@localhost ~]# mkfs.xfs /dev/vg1/lv1    #制作xfs的文件系统
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv2    #制作ext4的文件系统
[root@localhost ~]# mkdir /mnt/lv{1..2}    #创建挂载点
[root@localhost ~]# mount /dev/vg1/lv1 /mnt/lv1    #挂载
[root@localhost ~]# mount /dev/mapper/vg1-lv2 /mnt/lv2    #挂载的另一种写法

挂载以后:df -hT        #查看磁盘挂载信息

        不过此时只是临时挂载,要想永久挂载就需要前文提到的修改系统文件以达到开机自己挂载,在这我也就不再多赘述了;

4、LVM逻辑卷扩容

        4.1、VG管理

如果lv所在的vg有空间直接对lv扩容就可以了!

        扩大VG vgextend        

[root@localhost ~]# pvcreate /dev/sdc    #创建新的物理卷
[root@localhost ~]# vgextend vg1 /dev/sdc    #vg1卷组名,将/dev/sdc扩展到vg1中

        扩大LV lvextend

[root@localhost ~]# lvextend -L 5G /dev/vg1/lv1    #这是指将lv1扩容到5G
[root@localhost ~]# lvextend -L +3G /dev/vg1/lv1    #这是指在原有基础上加3G
[root@localhost ~]# lvectend -l +200 /dev/vg1/lv1    #PE写法,在原有的基础上加200个PE

        FS(file system)文件系统扩容

        这里介绍xfs和ext4两种文件系统的扩容;

[root@localhost ~]# xfs_growfs /dev/vg1/lv1    #xfs文件系统扩容
[root@localhost ~]# resize2fs /dev/vg1/lv1    #ext4文件系统扩容
5、LVM逻辑卷缩容

重要提示:在进行任何磁盘操作前,请务必备份重要数据。操作错误可能导致数据丢失;

备份数据:再开始缩小逻辑卷之前,首先备份其中所有的数据,以防止数据丢失。

卸载逻辑卷:如果逻辑卷包含操作系统的根目录或者已挂载的其他重要目录,需要再进入单用户模式下或使用Live CD环境下卸载该逻辑卷。这是因为无法在线缩小当前正在使用的逻辑卷。

卸载文件系统:在缩小逻辑卷之前,确保已卸载文件系统。如果是ext2/ext3/ext4文件系统,可以使用 “umount /mnt/vg/lv”

检查文件系统:在缩小逻辑卷之前,最好使用文件系统检查工具检查文件系统是否有错误。对于ext2/ext3/ext4文件系统可以运行:“e2fsck -f /de/vg/lv”

缩小逻辑卷:使用lvresize命令来缩小逻辑卷。例如缩小到10G,可以运行:

                        lvresize --resizefs --size  10G /dev/vg/lv

重新挂载逻辑卷

验证操作:确认文件系统和逻辑卷已成功缩小到所需大小

请注意,缩小逻辑卷涉及风险,如果操作不当可能导致数据丢失。因此,再进行此操作之前,无比备份所有重要数据,并谨慎操作。如果你对这些步骤不确定或不熟悉,建议寻求专业人士的帮助。

六、交换分区

        交换分区管理Swap--也叫虚拟内存

        作用:提升内存的容量,防止OOM(Out of Memory)

        现象是当内存不够的时候内核会随即杀死进程,它认为占用内存多的进程。(内核会先删除占用内存多的进程)

swap分区大小的设置规则:

再Linux系统,我们可以参照Redhat公司为RHEL5、RHEL6推荐的SWAP空间的大小划分原则,在你没有其他特别需求时,可以作为很好的参考依据。

内存小于4GB,推荐不少于2GB的swap空间;

内存4GB~16GB,推荐不少于4GB的swap空间;

内存16GB~64GB,推荐不少于8GB的swap空间;

内存64GB~256GB,推荐不少于16GB的swap空间;

1、查看当前的交换分区
[root@localhost ~]# free -m    #查看内存
[root@localhost ~]# swapon -s    #查看交换分区信息

2、增加交换分区

增加交换分区,可以是基本分区,LVM,File;

基本分区制作交换分区

[root@localhost ~]# fdisk /dev/sdd    #分一个主分区出来
[root@localhost ~]# partbrobe /dev/sdd     #刷新分区表
[root@localhost ~]# mkswap /dev/sdd1        #初始化
[root@localhost ~]# blkid /dev/sdd        #查看UUID
[root@localhost ~]# vim/det/fstab        #制作开机自动挂载
[root@localhost ~]# swapon -a        #激活swap分区
[root@localhost ~]# swapoff /dev/sdd         #关闭swap分区

file制作

[root@localhost ~]# dd if=/dev/zero of=/swap.img bs=1M count=2000
[root@localhost ~]# mkswap /swap.img    #初始化
[root@localhost ~]# vim /etc/fstab    #设置开机自动挂载
[root@localhost ~]# chmod 600 /swap.img    #交换分区权限设置为600,默认为644权限不安全
[root@localhost ~]# swapon -a    #激活
[root@localhost ~]# swapon -s    #查看交换分区信息

七、mount详解

常见的挂载选项:

-o:        指定问价虚拟同属性

rw:        读写

ro:        只读

noexec:        不允许执行二进制文件

exec:        允许执行二进制文件

auto:        mount -a 开机自动挂载

remount:        在线重新挂载

案例一、exec/noexec

[root@localhost ~]# mount /dev/vg1/lv1 /mnt/lv1    #挂载默认是有执行权限的
[root@localhost ~]# mount -o noexec /dev/vg1/lv2 /mnt/lv2    #设置不允许执行二进制文件

案例二、取消挂载

[root@localhost ~]# umount /mnt/lv2    
[root@localhost ~]# umount -l /mnt/lv2    #强制卸载

八、磁盘阵列

1、RAID介绍

        RAID即独立磁盘冗余阵列,通常简称为磁盘阵列。简单来说,RAID是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能数据冗余的技术。

注意:所有服务器在安装操作系统之前必须先做RAID【常识】

最常见的RAID级别:0、1、5、6、10(10是1和0的组合)

1)raid0        --数据条带卷

最少需要两块磁盘,分别往每一块磁盘上写一部分数据;

优点:

  1. 读写速度快
  2. 磁盘利用率100%

缺点:不提供数据冗余,无数据校验,不能保证数据的正确性,存在单点故障。

应用场景:

1)对数据完整性要求不高的场景,如:日志存储,个人娱乐

2)要求读写效率高,安全性能要求不高的,如图像工作站

2)raid1        --镜像raid

通过磁盘数据镜像实现数据冗余,再成对的独立磁盘上产生互为备份的数据。一般需要两块盘,每块磁盘上都会存储一份完整数据。其数据安全性就会较高,但是磁盘空间利用率是比较低的。

优点:提供数据冗余,数据双倍存储安全性高支持容错。读速度快。

缺点:写速度慢,无数据校验。磁盘利用率不高。磁盘利用率:50%;

应用场景:

存放重要数据,如数据存储领域。

3)raid5

        RAID5应该是目前最常见的RAID等级,它的校验数据分布在阵列中的所有磁盘上。RAID5的磁盘上同时存储数据和校验数据。当一个数据盘损坏时,系统可以根据其他数据块和对应的校验数据来重建损坏的数据。

raid5最少需要3块磁盘。

优点:

  1. 可以找回丢失的数据----数据可以通过校验计算得出
  2. 冗余磁盘----->(需要4块磁盘将其中一块做热备)当某一块磁盘坏掉后,冗余磁盘会自动替换上去
  3. 有校验机制
  4. 读写速度高
  5. 磁盘利用率高

缺点:磁盘越多安全性能越差

#定义:

RAID5是RAID0和RAID1的折中方案。RAID 5具有和RAID 0相似的数据读取速度,只是多了一个校验信息。

RAID 5的磁盘空间利用率吧比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。

应用场景:安全性较高,如金融、数据库、存储等。

4)RAID 6

RAID 6是在RAID 5的基础上为了进一步增强数据保护而设计的一种RAID方式。

RAID 6引入双重校验的概念,至少需要四块磁盘,他可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。

优点:

  1. 容错,允许两块磁盘同时坏掉。读写快。
  2. 良好的随机读性能
  3. 有校验机制

缺点:

  1. 写入速度差
  2. 成本高

应用场景:对数据安全级别要求较高的企业

5)RAID 10(混合raid)

优点:

  1. 较高的IO性能
  2. 有数据冗余
  3. 无单点故障
  4. 安全性能高

缺点:成本稍高

应用场景:特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。

RAID类型个数利用率优缺点
RAID0 条带集2+100%读写速率最快,不容错
RAID1 镜像集250%读写速率一般,容错
RAID5 带奇偶校验条带集3+(n-1)/n读写速率快,容错,允许坏一块
RAID6 带奇偶校验条带集双校验dp4+(n-2)/n读写快,容错,允许坏两块
RAID10 RAID1的安全+RAID0的高速450%读写速率快,容错
2、制作磁盘阵列

本次以RAID5为项目实验(3快硬盘)+热备(1块硬盘)

1)准备四块硬盘

[root@localhost ~]# ll /dev/sd*
brw-rw---- 1 root disk 8, 16 10月  4 13:20 /dev/sdb
brw-rw---- 1 root disk 8, 32 10月  4 13:20 /dev/sdc
brw-rw---- 1 root disk 8, 48 10月  4 13:20 /dev/sdd
brw-rw---- 1 root disk 8, 64 10月  4 13:20 /dev/sde

2)创建RAID

[root@localhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{b..e}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.
-C        #创建RAID
/dev/md    #第一个RAID设备
-l5        #RAID5
-n         #RAID成员的数量
-x         #热备盘的数量

3)格式化,挂载

[root@localhost ~]# mkfs.ext4 /dev/md0
[root@localhost ~]# mkdir /mnt/raid0
[root@localhost ~]# mount /dev/md0 /mnt/raid0
[root@localhost ~]# cp -r /etc /mnt/raid0

4)查看RAID信息

5)模拟一块硬盘坏掉,并移除

终端一:

[root@localhost raid0]# watch -n 1 'mdadm -D /dev/md0 | tail'    #watch持续查看

终端二:

[root@localhost raid0]# mdadm /dev/md0 -f /dev/sdb -r /dev/sdb    #模拟坏了并移除

6)设置RAID开机生效

[root@localhost raid0]# mdadm -D -s
ARRAY /dev/md0 metadata=1.2 spares=1 name=localhost.localdomain:0 UUID=16981bf0:62771092:7c61c4c7:b79e00e5
[root@localhost raid0]# mdadm -D -s > /etc/mdadm.conf
3、raid 5删除操作
  • 卸载raid挂载——umount /dev/md0
  • 停止raid——mdadm -s /dev/md0
  • 删除raid卷——mdadm --misc --zero-superblock  /dev/sd{b..e}

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值