五、存储管理

存储管理一

1.认识硬盘

分类:机械 HDD、固态 SSD

HDD内部结构

机械硬盘(HDD)是一种存储设备,使用旋转磁盘和读/写磁头来存储和检索数据。以下是机械硬盘的基本结构:

  1. 盘片(Platters):机械硬盘通常由多个盘片组成,每个盘片都是一个圆形的金属或玻璃基板,上面涂有磁性材料。

  2. 磁头(Read/Write Heads):每个盘片都有两个磁头,一个用于读取数据,另一个用于写入数据。磁头位于盘片上方和下方,通过磁性浮动臂和驱动器来移动。

  3. 磁道(Tracks):盘片被划分为多个同心圆轨道,称为磁道。每个磁道可以存储一定量的数据。

  4. 扇区(Sectors):每个磁道被划分为多个扇区,每个扇区可以存储固定大小的数据块,通常为512字节。

  5. 主轴(Spindle):盘片通过主轴连接在一起,并由电机驱动主轴旋转。通常,硬盘的转速以每分钟转数(RPM)来表示,如5400 RPM、7200 RPM或10000 RPM。

  6. 磁头臂(Actuator Arm):磁头臂是一个可移动的机械臂,上面安装有磁头。它通过电机和控制器的控制,可以在盘片上移动磁头。

  7. 磁头定位器(Head Positioner):磁头定位器负责精确定位磁头在盘片上的位置。它使用电磁力将磁头臂移动到正确的磁道上。

  8. 控制器(Controller):硬盘的控制器是一个电子设备,负责控制硬盘的操作。它管理磁头的移动、数据的读写、错误检测和纠正等功能。

HDD工作原理:

当计算机需要读取或写入数据时,控制器将指令发送给磁头臂和磁头,使其移动到正确的位置,并在磁道上读取或写入数据。机械硬盘的工作原理基于磁性材料的磁化和反磁化过程,通过改变磁场的方向来存储和检索数据。然而,由于机械硬盘使用机械部件进行数据访问,因此速度较慢,且容易受到物理冲击和震动的影响。

SSD的优势

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

与传统硬盘相比,SSD固态电子盘具有以下优点:

第一,SSD完全的半导体化,不存在数据查找时间、延迟时间,数据存取速度快。
第二,SSD全部采用闪存芯片,经久耐用,防震抗摔,即使发生与硬物碰撞,数据丢失的可能性也能够降到最小。  
第三,得益于无机械部件及闪存芯片,SSD没有任何噪音,功耗低。 
第四,质量轻,比常规1.8英寸硬盘重量轻20-30克,使得便携设备搭载多块SSD成为可能。

常见的硬盘尺寸:

3.5寸 2.5寸 1.8寸

硬盘分类:

  • 从插拔方式:热插拔、非热插拔

  • 从硬盘接口:

​ IDE(已经淘汰—也叫ATA)

​ SATA (Serial ATA),是当前主流的一种硬盘接口

​ SCSI(小型计算机的接口–很少了)

​ SAS代替了scsi (Serial Attached SCSI),当前SAS接口居多

  • IDE和SATA的区别:

​ 1、接口不同,传输的速率不同。IDE根据规范,最高到133MB/s, 而SATA3.0,可达6Gb/S,速度差距巨大。
​ 2、SATA支持热插拔。

  • SAS与SCSI的区别:

​ 1、接口不同;

​ 2、SAS兼容SATA,SCSI不兼容SATA;

硬盘设备命名:

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

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

2.磁盘的分区格式

分区的目的: 文件分类

2.1 MBR格式

分区命令:fdisk

一共可以分14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑)
MBR 小于2TB的硬盘。
一块硬盘最多分4个主分区。
一块硬盘可以直接划分4个主分区,也可以划分3个主分区和一个扩展分区,扩展分区下面可以划分多个逻辑分区

2.2 GPT格式

分区命令:gdisk (parted—rhel6)

一共可以分128个主分区
GPT大于小于2TB都可以。最大可以多大,超过目前硬件可以支撑的硬盘大小

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

3.第一步:基本分区

3.1 fdisk 分区

  • MBR 14个分区(4个主分区,扩展分区,逻辑分区)
  1. fdisk -l /dev/sdb # 查看磁盘分区信息

  2. fdisk /dev/sdb # 开始分区

    参数介绍:
    	m           	 # 查看帮助
    	n  				# 新建分区
    		Partition type: # 分区类型
    		p   primary (0 primary, 0 extended, 4 free)
    			e   extended
     		d				# 删除一个分区
     		o				# 转换成[MBR|DOS]分区格式
     		g				# 转换成gpt分区格式
     		p    			# ---打印分区信息
     		w   			#--保存退出
    
  3. 手动让内核更新分区表命令:partprobe /dev/sdb

    不需要重启

  4. lsblk # 查看磁盘设备

3.2 gdisk分区

  • GPT 128个主分区

    yum install -y gdisk
    gdisk分区步骤:
    1.gdisk -l /dev/sdc
    2.gdisk /dev/sdc
    	n  				# --创建分区
    	w  				# ---保存
    	Do you want to proceed? (Y/N): y   # 是否覆盖
    3.partprobe /dev/sdc  	#刷新分区表
    4.lsblk
    

3.3 MBR格式与GPT格式转换

parted -s /dev/sdc mklabel gpt

parted -s /dev/sdc mklabel msdos

4.第二步:格式化分区

格式化分区命令:

mkfs.ext4 or mkfs.xfs

格式化分区后的文件类型有两种:

  • ext4文件:mkfs.ext4 /dev/sdb1
  • xfs文件:mkfs.xfs /dev/sdb5

5.第三步:创建挂载目录并挂载分区

5.1 创建挂载目录

mkdir /data1

5.2 手动挂载分区

mount /dev/sdb1 /data1

5.3 /etc/fstab开机自动挂载

[root@qfedu.com ~]# blkid /dev/sdb1  #查看uuid和文件系统类型
/dev/sdb1: UUID="d1916638-bd0a-4474-8051-f788116a3a92" TYPE="ext4"
[root@qfedu.com ~]# vim /etc/fstab
参数解释:
第1列:挂载设备
(1)/dev/sda5  
(2)UUID=设备的uuid   rhel6/7的默认写法   同一台机器内唯一的一个设备标识
第2列:挂载点
第3列:文件系统类型
第4列:文件系统属性	
第5列:是否对文件系统进行磁带备份:0 不备份
第6列:是否检查文件系统:0 不检查

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

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

[root@qfedu.com ~]# vim /etc/rc.d/rc.local #将挂载命令直接写到文件中
date >> /tmp/host_start.txt
mount /dev/sdb1 /mnt/disk1/
mount /dev/sdc1 /mnt/disk2/
[root@qfedu.com ~]# chmod +x /etc/rc.d/rc.local #添加执行权限
[root@qfedu.com ~]# reboot

6.以上三步总结

流程:

  • fdisk分区 fdisk /dev/sdb

  • 格式化分区

    • ext4文件:mkfs.ext4 /dev/sdb1
    • xfs文件:mkfs.xfs /dev/sdb5
  • 创建挂载目录 mkdir /data1

  • 挂载分区

    • 手动挂载 mount /dev/sdb1 /data1

    • 开机自动挂载

      • 方式1:

        • vim /etc/fstab
      • 方式2:

        • 链接文件:vim /etc/rc.local
        • 源文件:vim /etc/rc.d/rc.local

        chomd +x /etc/rc.d/local

7. 文件系统分类

7.1 分类

  • 本地文件系统,不能在网络上用。
    ntfs xfs ext2,ext3,ext4 fat32
  • 网络文件系统,也可以在本地用。
    nfs glusterfs hdfs ceph

7.2 理解inode

  • inode:inoed块、i节点–索引节点。专门存储inode信息。也就是是文件的属性-(也叫元信息).

  • inode是文件或目录在磁盘里的唯一标识,linux读取文件首先要读取到这个索引节点,每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

  • inode的内容

    文件的字节数
    文件拥有者的User ID
    文件的Group ID
    文件的读、写、执行权限
    文件的时间戳,共有三个:ctime,mtime,atime。
    链接数,即有多少文件名指向这个inode

7.3 查看inode信息

stat /etc/hosts

ls -i /etc/hosts #-i:查看inode号

7.4 EXT与XFS

  • EXT 家族支持度最广:andirons
    但创建文件系统(格式化)慢!
    修复慢!
    文件系统存储容量有限!
  • XFS 同样是一种日志式文件系統:
    高容量,支持大存储
    高性能,创建/修复文件系统快
    格式化快

存储管理二

本节需掌握的操作:

1.lvm的制作
2.lvm的使用
3.lvm扩容-------在线扩容。可以在有数据的情况下去扩容。

1.逻辑卷LVM介绍

LVM(Logical Volume Manager)

LVM管理的概念:

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

lvm的特点:

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

#当采用LVM时:
1.将硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间;
2.当磁盘空间不足而加入新的硬盘时,不必将数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。
3.文件系统建立在LVM上,可以跨分区,方便使用;

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

基本分区流程vs逻辑卷LVM创建

基本分区(MBR|GPT) ----> Filesystem(制作文件系统类型) ----> mount(挂载)
逻辑卷LVM ----> Filesystem(制作文件系统类型) ----> mount(挂载)

2.lvm的制作和使用

第一步:拥有基本分区(添加磁盘)

第二步:做成物理卷:pv

​ sdb1、sdb2 打pv的标记。

第三步:加入卷组: vg

​ 卷组里面包含:sdb1 sdb2,建立在PV之上。

第四步:逻辑卷:lv

​ 逻辑卷是从卷组里面拿空间出来做成的逻辑卷,在起个名,建立在VG之上

第五步:制作文件系统

​ 命令:mkfs.xfs lvm路径

第六步:挂载

​ 命令:mount

PS:制作lvm的时候可以是一整块硬盘,也可以是硬盘分好的区并且是还没有用的。必须是没有做文件系统的

2.1 创建LVM

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

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

    查看磁盘:ll /dev/sd*

    image-20240506233727362

2.2 创建pv并查看

​ 创建pv命令:pvcreate /dev/sdb

​ 查看pv命令:pvs pvscan pvdisplay

2.3 创建vg并查看

​ 创建vg命令:vgcreate $vgname /dev/sdb

​ 查看vg命令:vgs vgscan vgdisplay

2.4 创建lv并查看

​ 创建lv命令:

lvcreate [-L|-l] [size|+size|pe|+100%FREE] -n $lvname $vgname

​ 查看lv命令:lvs vgscan vgdisplay

2.5 制作文件系统并挂载

  • 制作文件系统:

    • xfs格式:mkfs.xfs /dev/&vgname/$lvname
    • ext4格式:mkfs.ext4 /dev/&vgname/$lvname
  • 创建挂载目录:

    • mkdir /mnt/lv{1..2}
  • 手动挂载:

    • mount /dev/&vgname/$lvname /mnt/lv1
    • mount /dev/&vgname/$lvname /mnt/lv2
  • 自动挂载:参考基本分区

3.LVM逻辑卷扩容

注意:如果lv所在的vg有空间直接扩容lv就ok了!

如果lv所在的vg没有空间,则先给vg扩容

3.1扩大VG vgextend
  • 1)创建pv:

pvcreate /dev/sdc

  • 2)直接vgextend扩容,vg1是卷组名字,将/dev/sdc扩展到vg1中:

vgextend $vgname /dev/sdc

vgextend vg1 /dev/sdc

  • 3)查看当前vg:

vgs

3.2扩大lv lvextend
  • 扩展到850M:

lvextend -L 850M /dev/vg1/lv1

  • 在原有基础上==+==850M:

lvextend -L +850M /dev/vg1/lv1

  • 在原有基础上==+==15个PE:

lvextend -l +15 /dev/vg1/lv1

  • 将逻辑卷剩余容量全部给lv:

lvextend -l +100%FREE /dev/vg_name/lv_name

  • 扩完之后查看lv:

lvs

4.FS(file system)文件系统扩容

  • xfs扩容

xfs_growfs /dev/vg_name/lv_name

  • ext4扩容

resize2fs /dev/vg_name/lv_name

5.LVM逻辑卷缩容

在 Linux 系统中,LVM (Logical Volume Manager) 是一种用于管理磁盘分区的工具,它允许你创建、删除、扩展和缩小逻辑卷(Logical Volume)。

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

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

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

  3. 卸载文件系统: 在缩小逻辑卷之前,确保已卸载文件系统。如果是 ext2/ext3/ext4 文件系统,可以使用以下命令:

    umount /mnt/vg2/lv1/
    
  4. 检查文件系统: 在缩小逻辑卷之前,最好使用文件系统检查工具检查文件系统是否有错误。对于 ext2/ext3/ext4 文件系统,可以运行:

    e2fsck -f /dev/vg2/lv1
    

  5. 缩小逻辑卷: 使用 lvresize 命令来缩小逻辑卷。例如,假设你要将逻辑卷 /dev/vg2/lv1 缩小到 10G,可以运行:

    lvresize --resizefs --size 10G /dev/vg2/lv1 
    

    这将缩小逻辑卷的大小,并自动调整文件系统大小。

  6. 重新挂载逻辑卷: 如果你在步骤2中卸载了逻辑卷,现在可以重新挂载它。

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

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

6.交换分区

偷懒:磁盘插上后,不用分区,直接格式化

  • 制作交换分区:
    1)磁盘分区
    fdisk /dev/sde
    2)格式化
    mkswap /dev/sde1
    3)挂载
    vim /etc/fstab
UUID=ec059692-ddde-4971-9e4f-77246f6cb699 swap swap    defaults        0 0

​ 4)生效
swapon -a
​ 5)查看详细信息
swapon -s

  • 使用大文件制作:

​ 1)创建大文件:

dd if=/dev/zero of=/data2/swap.img bs=1000M count=10
​ 2)格式化
mkswap /data2/swap.img
​ 3)挂载
vim /etc/fstab

/data2/swap.img swap swap    defaults        0 0

​ 4)生效
swapon -a
​ 5)关闭swap分区:swapoff -a

​ 6)显示内存的使用情况:free -m

7.mount umount

查看已经挂载上的系统的属性命令:mount

挂载命令:mount [-o] [remount,rw,ro,exec,noexec,auto] /dev/vg1/lv1 /mnt/lv1

-o 挂载属性
remount,rw,ro,exec,noexec,auto

-o         指定文件系统属性
	rw	       读写 
	ro	       只读 
	noexec	   不允许执行二进制文件
	exec	   允许执行二进制文件 
	auto	   mount -a 开机自动挂载 
	remount	   在线重新挂载 

案例1:exec/noexec

[root@linux-server ~]# mount /dev/vg1/lv1 /mnt/lv1/		#挂载默认是有执行权限的
[root@linux-server ~]# mount -o noexec /dev/vg1/lv2 /mnt/lv2  #不允许执行二进制文件
[root@linux-server ~]# cat /mnt/lv1/hello.sh
#!/bin/bash
echo "hello"

[root@linux-server ~]# cat /mnt/lv2/hello2.sh
#!/bin/bash
echo "hello"
[root@linux-server ~]# chmod +x /mnt/lv1/hello.sh 
[root@linux-server ~]# chmod +x /mnt/lv2/hello2.sh
[root@linux-server ~]# /mnt/lv1/hello.sh
hello
[root@linux-server ~]# /mnt/lv2/hello2.sh
-bash: /mnt/lv2/hello2.sh: Permission denied

取消挂载

umount /dir_point/lv_name

[root@linux-server ~]# df -Th
Filesystem              Type      Size  Used Avail Use% Mounted on
/dev/mapper/vg1-lv1     xfs       1.7G   34M  1.7G   2% /mnt/lv1
/dev/mapper/vg1-lv2     ext4       74M  1.6M   67M   3% /mnt/lv2
[root@linux-server ~]# umount /mnt/lv2/

8.raid–磁盘阵列

8.1raid介绍

RAID ( Redundant Array of Independent Disks )即独立磁盘冗余阵列,通常简称为磁盘阵列。简单地说,

RAID 是由多个独立的高性能磁盘驱动器组成的磁盘子系统,从而提供比单个磁盘更高的存储性能和数据冗余的技术

8.2raid原理

raid0 ---数据条带卷
最少需要两块磁盘,分别往每一块磁盘上写一部分数据
优点:
1.读写速度快, 
2.磁盘利用率:100%
缺点:不提供数据冗余,无数据检验,不能保证数据的正确性,存在单点故障。

应用场景:
1)对数据完整性要求不高的场景,如:日志存储,个人娱乐
2)要求读写效率高,安全性能要求不高,如图像工作站 
============================================================================
raid1 又叫镜像raid,通过磁盘数据镜像实现数据冗余,在成对的独立磁盘上产生互为备份的数据。
一般需要两块磁盘,每块磁盘上都会存储一份完整数据。其数据安全性就会较高,但是磁盘空间利用率是比较低的。

优点:提供数据冗余,数据双倍存储安全性高支持容错。读速度快
缺点:写速度慢,无数据校验。磁盘利用率不高
磁盘利用率:50%

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

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

#定义:
RAID 5是RAID 0和RAID 1的折中方案。RAID 5具有和RAID0相近似的数据读取速度,只是多了一个校验信息。RAID5的磁盘空间利用率要比RAID 1高,存储成本相对较低,是目前运用较多的一种解决方案。


应用场景:安全性高,如金融、数据库、存储等。
==================================================
raid6:RAID6 等级是在 RAID5 的基础上为了进一步增强数据保护而设计的一种 RAID 方式。
RAID6引入双重校验的概念,最少需要四块磁盘,它可以保护阵列中同时出现两个磁盘失效时,阵列仍能够继续工作,不会发生数据丢失。
优点:
1.容错:允许两块磁盘同时坏掉。读写快。
2.良好的随机读性能
3.有校验机制

缺点:
1.写入速度差
2.成本高

应用场景:对数据安全级别要求比较高的企业
===============================================
RAID10:先做镜像再作条带--也叫混合raid
优点:
1.较高的IO性能
2.有数据冗余
3.无单点故障
4.安全性能高
缺点:成本稍高
应用场景:
特别适用于既有大量数据需要存取,同时又对数据安全性要求严格的领域,如银行、金融、商业超市、仓储库房、各种档案管理等。
=======================================================

8.3作用

为什么要做raid? #为了保证数据完整性,防止数据丢失

8.4购买磁盘后需要操作

1.有磁盘,

2.制作raids5,

3.开始分区,

4.刷新分区表,

5.制作文件系统,

6.挂载。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值