Linux存储管理I

一 .存储管理

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

初识硬盘

机械 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. 从磁盘分区方式区分

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:主分区表

2. 基本分区

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

lsblk——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 工具分区,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的硬盘。

转格式的时候保证此分区没有被系统占用。
[root@qfedu.com ~]# parted -s /dev/sdc mklabel gpt   
                        #将/dev/sdc(MBR格式)转换成(GPT格式)
[root@qfedu.com ~]# 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                # 划分为GPT格式的分区
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使用
语法:mount [-lrvf] [-t fstype] [-o options] device dir
-l:显示当前已挂载的文件系统。
-r:以只读模式挂载。
-v:显示详细的挂载信息。
-f:强制挂载。
-t fstype:指定文件系统类型。
-o options:指定挂载选项。
[root@linux-server ~]# mkdir /mnt/disk1   #创建挂载目录
[root@linux-server ~]# mkdir /mnt/disks   #创建挂载目录(挂载点)
[root@linux-server ~]# mount  /dev/sdb1 /mnt/disk1/ #将sdb1硬盘分区挂载到disk1目录
[root@linux-server ~]# mount /dev/sdc1 /mnt/disks/  #将sdc1硬盘分区挂载到disks目录
df

df:disk free的缩写,查看磁盘挂载与磁盘使用空间,用于列出文件系统的整体磁盘使用量

语法:df [-a -h -i -k -H -T -m] [目录或文件名]
-a :列出所有的文件系统,包括系统特有的 /proc 等文件系统;
-k :以 KBytes 的容量显示各文件系统;
-m :以 MBytes 的容量显示各文件系统;
-h :以人们较易阅读的GB,MB,KB等格式显示磁盘空间大小;
-H :以 M=1000K 取代 M=1024K 的进位方式;
-T :显示文件系统类型
-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
取消挂载umount
[root@linux-server ~]# umount /mnt/disks/
[root@linux-server ~]# umount -l /mnt/disk1/ 
                # 强行卸载,即使目录有资源被进程占用,也可以卸载

三、fstab开机自动挂载

fstab文件描述系统中各种文件系统的信息,系统开机时会主动读取/etc/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 不检查

[root@linux-server ~]# mount -a #挂载所有在/etc/fstab文件中定义的文件系统

(1)在系统启动时会自动执行 mount -a命令挂载 /etc/fstab配置中定义的文件系统;
(2)使用 mount -a命令时,需确保/etc/fstab文件中的配置无误,避免挂载错误文件系统或出现挂载问题。

实战二

[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 用于添加开机启动命令;/etc/rc.local是/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节点,索引节点(index node),是文件或目录在磁盘里的唯一标识,
记录文件的属性(文件的元数据metadata):
文件的字节数;文件拥有者的User ID;文件的Group ID;文件的读、写、执行权限;文件的时间戳,共有三个:ctime,mtime,atime;链接数,即有多少文件名指向这个inode。
每一个文件都占用一个inode,同时记录此文件数据所在的block numbber,
inode大小为128 bytes block。
innode决定文件系统中文件的数量,只要没有使用完innode,即使磁盘空间满,也不会影响新文件的创建
查看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

block

存储文件的实际数据。磁盘空间的使用是由数据块来决定的,每个文件都需要占用一定数量的数据块来存储实际的文件内容。
block实际存储文件的内容,若文件较大,会占用多个block。

block大小为默认为4K

1.3 EXT

Ext4(Fourth extended filesystem )是第四代扩展文件系统的缩写,2008年推出,是一个真正可靠的文件系统,是大部分Linux发行版的默认文件系统。由比较老的代码生成的,是日志文件系统,会对文件在磁盘中的位置以及任何其它对磁盘的更改做记录,如果系统崩溃,得益于journal技术,文件系统很少会损坏。centos6是ext4;centos5是ext3、ext4。

ext4提供了更快的文件系统检查和更好的性能,支持更大的文件和分区大小

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

1.4.XFS

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

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

1.5区别

单个文件的大小,EXT4可以是16GB到16TB,而XFS可以是16TB到16EB区别
最大文件系统大小,EXT4可以是1EB,而XFS是8EB,通常会限制在100TB左右EXT4受限制于磁盘结构和兼容问题,可扩展性不如XFS 

  • 29
    点赞
  • 29
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值