Bootstrap

Linux存储管理I

存储管理I

一 .存储管理

主要知识点: 基本分区、逻辑卷LVM、EXT3/4/XFS文件系统、RAID

1.1.初识硬盘
机械 HDD(Hard Disk Drive)
固态 SSD(Solid State Drive):优点:读写速度快、防震抗摔性、低功耗、无噪音、工作温度范围大、轻便;缺点:容量小、寿命有限、售价高。

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 (串行附加 SCSISerialAttached SCSI),当前SAS接口居多
特性SATASAS
连接器类型15 针电源,7 针数据(分离式连接器)15 针电源,7 针数据(合并式连接器)
速度5400 至 7200 RPM,数据传输速度高达 6Gb/s7200 至 15000 RPM,数据传输速度高达 12Gb/s(使用双端口 SAS)
可靠性在 25°C 下 70 万至 120 万小时,可能在长时间使用后发生故障。在 45°C 下 120 万至 160 万小时,设计用于 7 X 24 小时使用。
价格性价比高相对更贵
使用场景消费级电脑、笔记本电脑和存储解决方案企业环境,如服务器和数据中心

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](全虚拟化驱动)
1.2从磁盘分区方式区分
MBR格式
分区命令:fdisk  
MBR(Master Boot Record):MBR是传统的磁盘分区表格式,也被称为DOS分区结构,它位于硬盘的第一个扇区(扇区0),通常为512字节大小。MBR分区表最多支持4个主分区,或者3个主分区和1个扩展分区,每个主分区或扩展分区最多可以有2.2TB的容量限制。由于容量限制和其他限制,MBR分区表在现代计算机中已经逐渐被UEFI和GPT取代。
一共可以分14个分区(4个主分区,扩展分区,逻辑分区) 例如: 3主 + 1扩展(n逻辑,基于扩展分区)
MBR 适用于小于2TB的硬盘。
一块硬盘最多分4个主分区。
GPT格式
分区命令:gdisk(parted---rhel6)
GPT(GUID Partition Table,全局唯一标识分区表):GPT是一种更先进的磁盘分区表格式,它使用全局唯一标识符(GUID)来标识分区和磁盘。GPT分区表支持更大的磁盘容量(超过2TB),并且允许最多128个分区。除了提供更大的容量和更多的分区之外,GPT还提供了数据完整性校验和磁盘备份表等功能,使其在现代计算机系统中更为常见。
一共可以分128个主分区
GPT大于小于2TB都可以。
#注意:从MBR转到GPT,或从GPT转换到MBR会导致数据全部丢失!

Boot code 启动代码

Primary partion table:主分区表

二.基本分区

首先需要先给虚拟机添加磁盘

lsblkl——list block,用于列出所有可用块设备的信息,并显示块设备之间的依赖关系

[root@linux-server ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 Nov  7 23:15 /dev/sda
brw-rw----. 1 root disk 8,  1 Nov  7 23:15 /dev/sda1
brw-rw----. 1 root disk 8,  2 Nov  7 23:15 /dev/sda2
brw-rw----. 1 root disk 8, 16 Nov  7 23:15 /dev/sdb
brw-rw----. 1 root disk 8, 32 Nov  7 23:15 /dev/sdc
[root@linux-server ~]# lsblk           # 查看磁盘设备的分区
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   20G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   19G  0 part 
  ├─centos-root 253:0    0   17G  0 lvm  /
  └─centos-swap 253:1    0    2G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
sdc               8:32   0   10G  0 disk 
2.1.fdisk
  • 早期的磁盘使用 fdisk 工具分区,fdisk只能用于MBR分区,最大限制磁盘容量 2T

语法:fdisk [选项] 设备文件名
-l:显示设备的分区表信息。
-n:创建一个新的分区。
-d:删除一个分区。
-p:打印分区表的内容。
-t:更改分区的类型。
-u:以扇区单位显示分区信息。
-w:将分区表写入磁盘。
[root@linux-server ~]# fdisk -l /dev/sdb #查看磁盘分区信息
[root@linux-server ~]# fdisk /dev/sdb    #针对MBR格式,创建分区
                                         # m  查看帮助
Command (m for help): n                  # n  新建分区
Partition type: p                        #新建主分区
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Using default response p                 #默认回车
Partition number (1-4, default 1): 
First sector (2048-20971519, default 2048): 
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-20971519, default 20971519): +5G
Partition 1 of type Linux and of size 5 GiB is set
设置主分区大小创建主分区,然后
Command (m for help): p  ---打印分区信息
#创建扩展分区
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 (10487808-20971519, default 10487808): 
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-20971519, default 20971519): 
Using default value 20971519   #注意:扩展分区将剩下的空间全都给了,一路回车即可
Partition 2 of type Extended and of size 5 GiB is set
#创建逻辑分区
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 (208896-20971519, default 208896): #默认
Using default value 208896
Last sector, +sectors or +size{K,M,G} (208896-20971519, default 20971519): +2G 
                        ​​​​​​​        ​​​​​​​        ​​​​​​​        #指定大小
Partition 5 of type Linux and of size 2 GiB is set
Command (m for help): w   #保存退出
[root@linux-server ~]# partprobe /dev/sdb   
                          #更新磁盘分区表,手动让内核更新分区表。不需要重启reboot
[root@linux-server ~]# lsblk #查看磁盘设备

sdb2——扩展分区(1K是因为存储放到逻辑分区)

sdb5——逻辑分区

2.2 gdisk
  • gdisk 又叫 GPT fdisk,是fdisk的升级版,主要使用的是GPT分区类型,用来划分容量大于2T的硬盘。

转格式的时候保证此分区没有被系统占用。
[[email protected] ~]# parted -s /dev/sdc mklabel gpt   
        ​​​​​​​        ​​​​​​​        #将/dev/sdc(MBR格式)转换成(GPT格式)
[[email protected] ~]# parted -s /dev/sdc mklabel msdos  
        ​​​​​​​        ​​​​​​​        #将/dev/sda(GPT格式)转换成(MBR格式)
1.创建分区
[root@linux-server ~]# yum -y install gdisk          # 安装分区工具
[root@linux-server ~]# gdisk -l /dev/sdc
[root@linux-server ~]# gdisk /dev/sdc
Command (? for help): n                              # 创建分区
Partition number (1-128, default 1): 
First sector (34-16777182, default = 2048) or {+-}size{KMGTP}:
Last sector (2048-16777182, default = 16777182) or {+-}size{KMGTP}: +100M
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300):    # 直接回车
Command (? for help): p   --打印分区信息
Command (? for help): w    ---保存
Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!
Do you want to proceed? (Y/N): y   是否覆盖是
OK; writing new GUID partition table (GPT) to /dev/sdc.
The operation has completed successfully.
[root@linux-server ~]# partprobe /dev/sdc             # 刷新分区表
[root@linux-server ~]# gdisk -l /dev/sdc
[root@linux-server ~]# lsblk

2.创建文件系统(格式化)centos7默认使用xfs

创建文件系统——mkfs:make filesystem

文件系统是一种将数据存储在磁盘上的组织方式,它提供了文件和目录的组织和管理方式,使用户可以方便地访问和操作文件和目录。
底层原理上,Linux的文件系统是在磁盘上分配一定的空间用于存储文件和目录。当用户创建一个新文件或目录时,文件系统会在磁盘上分配一块空间,然后记录文件或目录的信息,例如文件名、大小、权限等。文件系统会把文件或目录的数据存储在磁盘的特定位置上,这样用户在访问文件或目录时就可以直接读取这些数据。
[root@linux-server ~]# mkfs.ext4 /dev/sdb1   #格式化成ext4格式的文件系统
[root@linux-server ~]# mkfs.xfs /dev/sdc1   
                        #格式化成xfs格式的文件系统(make file system)
3.挂载mount使用
[root@linux-server ~]# mkdir /mnt/disk1   #创建挂载目录
[root@linux-server ~]# mkdir /mnt/disks   #创建挂载目录
[root@linux-server ~]# mount  /dev/sdb1 /mnt/disk1/ #挂载disk1目录到sdb1目录
[root@linux-server ~]# mount /dev/sdc1 /mnt/disks/

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

df:disk free的缩写,用于列出文件系统的整体磁盘使用量

语法:df [-a -h -i -k -H -T -m] [目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的 GBytes, MBytes, KBytes 等格式自行显示磁盘空间大小;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型, 连同该 partition 的 filesystem 名称 (例如 ext3) 也列出;
-i :不用硬盘容量,而以 inode 的数量来显示
[root@linux-server ~]# df -Th   #查看磁盘空间的详细信息(格式、类型等)
                        类型     大小   可用   使用
                                              百分比 挂载点
Filesystem              Type      Size  Used Avail Use% Mounted on
devtmpfs                devtmpfs  979M     0  979M   0% /dev
tmpfs                   tmpfs     991M     0  991M   0% /dev/shm
tmpfs                   tmpfs     991M  9.6M  981M   1% /run
tmpfs                   tmpfs     991M     0  991M   0% /sys/fs/cgroup
/dev/mapper/centos-root xfs        18G  6.8G   11G  39% /
/dev/sda1               xfs       497M  131M  367M  27% /boot
tmpfs                   tmpfs     199M     0  199M   0% /run/user/0
/dev/sdb1               ext4      4.8G   20M  4.6G   1% /mnt/disk1
/dev/sdc1               xfs        97M  5.3M   92M   6% /mnt/disks
取消挂载
[root@linux-server ~]# umount /mnt/disks/
[root@linux-server ~]# umount -l /mnt/disk1/ 
                # 强行卸载,即使目录有资源被进程占用,也可以卸载

三、fstab开机自动挂载

fstab只能对磁盘或挂载设备

3.1./etc/fstab文件实现开机的时候自动挂载
[root@linux-server ~]# blkid /dev/sdb1  # 查看uuid和文件系统类型
/dev/sdb1: UUID="d1916638-bd0a-4474-8051-f788116a3a92" TYPE="ext4"
[root@linux-server ~]# vim /etc/fstab   # 实现开机自动挂载
参数解释:
第1列:挂载设备名(两种写法)   (1)/dev/sda5       (2)UUID=设备的uuid      
第2列:挂载点 /mnt/disk1
第3列:文件系统类型               ext4、xfs
第4列:文件系统属性               defaults
第5列:是否对文件系统进行磁带备份:0 不备份
第6列:是否检查文件系统:0 不检查

[[email protected] ~]# mount -a #自动挂载

实战二

[root@linux-server ~]# vim /etc/fstab
/dev/sdc2       /mnt/disks      xfs     defaults        0 0
[root@linux-server ~]# mount -a
3.2/etc/rc.d/rc.local开机自动挂载
这个配置文件会在用户登陆之前读取,这个文件中写入了什么命令,在每次系统启动时都会执行一次。也就是说,如果有任何需要在系统启动时运行的工作,则只需写入 /etc/rc.d/rc.local 配置文件即可
[root@linux-server ~]# vim /etc/rc.d/rc.local #将挂载命令直接写到文件中
mount /dev/sdb1 /mnt/disk1/
mount /dev/sdc1 /mnt/disk2/
[root@linux-server ~]# chmod +x /etc/rc.d/rc.local #添加执行权限
[root@linux-server ~]# reboot

文件系统

文件系统分类

1.1分类
分类:
本地文件系统,不能在网络上用。
ntfs  xfs  ext2,ext3,ext4
网络文件系统,也可以在本地用。
nfs   glusterfs   hdfs   ceph
nfs:(Network File System),网络文件系统,
glusterfs:开源的分布式文件系统
hdfs:Hadoop Distributed File System,是 Apache Hadoop 的核心组件之一
1.2概念
作用:
管理文件的一套系统。
文件的编辑,拷贝,粘贴,移动。
​
#理解inode:
inode :inode块、i节点--索引节点。专门存储inode信息。也就是是文件的属性-(也叫元信息).它是文件或目录在磁盘里的唯一标识,linux读取文件首先要读取到这个索引节点,每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。
inode的内容
文件的字节数
文件拥有者的User ID
文件的Group ID
文件的读、写、执行权限
文件的时间戳,共有三个:ctime,mtime,atime。
链接数,即有多少文件名指向这个inode
查看inode

stat、ls -i

[root@linux-server ~]# stat /etc/hosts   #显示文件的状态信息
  File: ‘/etc/hosts’
  Size: 158             Blocks: 8          IO Block: 4096   regular file
Device: fd00h/64768d    Inode: 16778306    Links: 1
Access: (0644/-rw-r--r--)  Uid: (    0/    root)   Gid: (    0/    root)
Access: 2020-07-28 19:11:48.781000069 +0800
Modify: 2013-06-07 22:31:32.000000000 +0800
Change: 2020-07-18 15:37:52.353025437 +0800
 Birth: -
文件:显示文件名。
大小:文件大小,以字节为单位。
块:分配给文件的块数。
IO块:每个块的字节大小。
设备:设备编号,十六进制或十进制格式。
Inode:这是文件的索引节点号。
链接:与文件关联的硬链接数。
访问权限:符号或数字格式的文件权限。
Uid:所有者的用户ID和名称。
Gid:群组ID和所有者名称。
上下文:SeLinux安全上下文
文件类型:显示文件的类型(常规文件,符号链接等)。
访问:显示上次访问文件的时间。
修改:显示上次更改文件内容的时间。
更改:显示文件元数据(例如权限和所有权)上次更改的时间。

 
[root@linux-server ~]# ls -i /etc/hosts  #-i:查看分区的inode号
16778306 /etc/hosts
1.3.EXT

ext4:ext4是Linux中最常用的文件系统之一,它是ext文件系统的进化版本。ext4提供了更快的文件系统检查和更好的性能,支持更大的文件和分区大小。它是许多Linux发行版的默认文件系统。

EXT 家族支持度最广:
但创建文件系统(格式化)慢!
修复慢!
文件系统存储容量有限!
1.4.XFS

XFS:XFS是一种高性能的日志文件系统,适用于大容量存储和大文件。它具有快速的读写速度、高效的空间管理和稳定的性能,在处理大文件和大型数据集时效果显著。

XFS 同样是一种日志式文件系統:
高容量,支持大存储
高性能,创建/修复文件系统快
格式化快
;