存储管理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接口居多
特性 | SATA | SAS |
---|---|---|
连接器类型 | 15 针电源,7 针数据(分离式连接器) | 15 针电源,7 针数据(合并式连接器) |
速度 | 5400 至 7200 RPM,数据传输速度高达 6Gb/s | 7200 至 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的硬盘。
转格式的时候保证此分区没有被系统占用。 [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 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 不检查
[root@qfedu.com ~]# 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 同样是一种日志式文件系統: 高容量,支持大存储 高性能,创建/修复文件系统快 格式化快