存储管理

发布时间 2023-11-25 13:46:05作者: 辞瑾

一、存储方式

1.在Linux中,存储管理主要是通过文件系统和磁盘管理来实现的。其中,文件系统是Linux中用于存储和组织文件的方式。它能够将数据存储在硬盘或其他存储设备上,并提供了用于访问和操作这些数据的接口。

 

2.在Linux中,硬盘和其他存储设备通常被视为块设备,可以通过使用块设备文件来访问它们。块设备文件是特殊类型的文件,可以用来读写硬盘和其他存储设备的扇区。

 

3.Linux中的磁盘分区有两种常见的类型: MBR分区和GPT分区。MBR分区采用主引导记录的方式,它是在磁盘的第-个扇区中存储的,并且每个分区信息占用16B,因此分区表最多可存储4项分区信息,不支持超过2TB的磁盘。GPT分区则使用GUID分区表,可以支持更大的磁盘和更复杂的分区方案。

 

4.从连接方式上看,存储分以下3种类型:

本地存储:直接插在服务器上的硬盘,系统文件存放在本地。

外部存储:可理解为平时使用的移动硬盘,不过移动硬盘用的是USB接口连接,一般外部存储可以使用SCSI线、SATA线、SAS线、FC线。

网络存储:以太网络、FC网络。当存储的数据量非常庞大时,不可能再存储到本地,需要存储到专门的存储设备上或者存储集群里,这时用户可以通过网络去连接与使用这些数据。

 

5.硬盘是计算机的外部存储器之一,使用磁介质来存储数据。硬盘的种类主要包括机械硬盘(HDD) 和固态硬盘(SSD)。

机械硬盘即是传统普通硬盘,主要由磁头组件、磁头驱动机构、盘片组、控制电路和接口等几个部分组成。机械硬盘中所有的盘片都装在一个旋转轴上,每张盘片之间是平行的,在每个盘片的存储面上有一个磁头,磁头与盘片之间的距离比头发丝的直径还小,所有的磁头联在一个磁头控制器上,由磁头控制器负责各个磁头的运动。盘片的数量和每个盘片的存储容量确定了磁盘的总容量。

固态硬盘(SSD) 则采用闪存颗粒来储存数据,不同于机械硬盘采用磁性材料存储数据。固态硬盘的特点就是断电后数据不消失。

此外,还有一种混合硬盘(HHD),它把磁性硬盘和闪存集成到一起的一种硬盘。

 

6.分析机械硬盘和固态硬盘的优缺点:

机械硬盘的优点: 

(1)容大,价格相对便宜。

(2)可以扩展存储容量,适合需要大容量存储的场景。

(3)读写速度虽然较慢,但不太频繁的读写操作对计算机性能影响不大。

机械硬盘的缺点:

(1)读写速度较慢, 随着使用时间的增加,速度会逐渐变慢。

(2)对于震动、温度、湿度等外部环境的变化比较敏感,容易导致数据损坏或丢失。

(3)机械结构比较复杂,存在机械损坏的风险。

 

固态硬盘的优点:

(1)读写速度快,通常比机械硬盘快数倍甚至数十倍。

(2)低功耗,使用寿命长。

(3)无噪音、无震动、抗震性能好。

(4)体积小、重量轻、易于安装和维护。

(5)较高的数据可靠性,不易受到外部环境的影响。

固态硬盘的缺点:

(1)相对机械硬盘而言,价格比较高。

(2)存储密度较低,难以实现大规模存储。

(3)随机写入性能较差,容易出现数据写入不连续的问题。

 

 

7.从硬盘接口上,硬盘分为以下几种类型:

TDE——SATA硬盘

SCSI——SAS硬盘

其他——PCIe、FC硬盘

 

8.硬盘的分区方式

分区类型 磁盘容量 分区软件 分区数
MBR <2TB fdisk 14个分区(4个主分区,扩展分区,逻辑分区)
GPT 不限 gdisk 128个主分区

注意:从MBR转换到GPT或从GPT转换到MBR将会导致数据全部丢失。

 

二、基本分区

(一)添加新硬盘

1.Linux中的磁盘分区有两种常见的类型: MBR分区和GPT分区。MBR分区采用主引导记录的方式,它是在磁盘的第一个扇区中存储的, 并且每个分区信息占用16B,因此分区表最多可存储4项分区信息,不支持超过2TB的磁盘。GPT分区则使用GUID分区表,可以支持更大的磁盘和更复杂的分区方案。

2.lsblk命令:用于查看硬盘设备

 

[root@localhost ~]# lsblk
NAME            MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda               8:0    0   30G  0 disk 
├─sda1            8:1    0    1G  0 part /boot
└─sda2            8:2    0   29G  0 part 
  ├─centos-root 253:0    0   26G  0 lvm  /
  └─centos-swap 253:1    0    3G  0 lvm  [SWAP]
sdb               8:16   0   10G  0 disk 
└─sdb1            8:17   0   10G  0 part 
sdc               8:32   0   10G  0 disk 
sr0              11:0    1  4.4G  0 rom  /run/media/root/CentOS 7 x86_64
示例

 

 

 

(二)MBR分区

1.在MBR分区中,可以使用fdisk命令进行硬盘分区管理,包括创建、删除、查看分区表等操作。下面是一些常用的fdisk命令 及参数示例:

(1)查看硬盘及分区详细信息:fdisk -l /dev/sdb

该命令会列出/dev/sdb硬盘的分区表信息,包括每个分区的起始扇区、大小、文件系统类型等。

(2)交互模式对硬盘进行操作:fdisk  /dev/ sdb

进入交互模式后,可以使用命令进行创建、删除、查看分区表等操作。例如,n命令可以创建新分区,p命令可以查看分区表信息,d命令可以删除分区,W命令可以将分区表写入硬盘并退出。

(3)创建新分区: fdisk /dev/sdb -n -w 40960 -c 2048 -t 83 -p /dev/sdal -v -u 2048

该命令会创建一个新的主分区,位于/dev/sdb上,起始扇区为40960,大小为2048个扇区,文件系统类型为83(linux默认文件系统类型)并将其命名为/dev/sda1。-v参数可以显示详细操作过程,-u参数指定分区表采用GPT格式。

(4)删除分区:fdisk /dev/sdb -d 40960-61439

该命令会删除从40960扇区到61439扇区的主分区。

(5)查看分区信息:

fdisk -l /dev/sdb

(6)总结:

fdisk命令:创建分区

-l:可以查看系统所挂硬盘个数及分区情况

输入“m”参数:可以查看帮助信息

输入“n”参数:尝试创建新分区

输入“p”参数:查看硬盘中的分区信息

输入“ w”参数:保存所有分区设置

 

[root@localhost ~]# fdisk -l /dev/sda

磁盘 /dev/sda:32.2 GB, 32212254720 字节,62914560 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x000a9762

   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200    62914559    30407680   8e  Linux LVM
示例

 

 

 

(三)GPT分区

1.在GPT分区中,可以使用parted或gdisk等命令进行硬盘分区管理,包括创建、删除、查看分区表等操作。下面是一 些常用的命令及参数示例:

(1)使用parted命令创建GPT分区:parted /dev/sdb

进入parted命令行界面后,可以使用mkpart令创建GPT分区。例如,mkpart primary 0% 100%命令将创建一个主分区, 从硬盘的起始扇区一直延伸到100%的扇区。

(2)使用gdisk命令创建GPT分区:gdisk /dev/sdb

进入gdisk命令行界面后,可以使用n (新建分区)、d (删除分区)、w (写入分区表并退出)等命令进行操作。例如,输入n,然后按提示输入分区类型、起始扇区、大小等信息,即可创建一个 新的GPT分区。

(3)查看GPT分区表信息:gdisk -l dev/sdb

该命令会列出/dev/sdb硬盘的GPT分区表信息,包括每个分区的起始扇区、大小、类型等。

(4)格式化GPT分区:

对于已创建的GPT分区,可以使用mkfs命令进行格式化。例如,mkfs.ext4 /dev/sdb1命令将使用ext4文件系统格式化/dev/sdb1分区。

(5)partprobe命令:真实查看硬盘信息

 

(四)创建文件系统

1.在Linux中,可以使用mkfs命令创建文件系统。具体步骤如下:

(1)确定要创建文件系统的设备,例如/dev/sdb1。

(2)执行以下命令创建文件系统:mkfs. ext4 /dev/sdb1

该命令将使用ext4文件系统格式化/dev/sdb分区。需要注意的是,在执行mkfs命令之前,需要确保设备上没有重要的数据备份,否则数据将会被格式化删除。此外,还可以使用其他参数来指定文件系统的大小、块大小、inode数量等参数。

 

(五)挂载分区

1.在Linux中,挂载分区主要包括挂载点的选择、分区设备的指定、文件系统的类型以及挂载选项的设定。

(1)首先挂载点是文件系统中用于挂载其他设备的目录。可以选择系统中的任何一个空目录作为挂载点。例如,可以使用/mnt目录作为挂载点。

(2)其次,需要指定要挂载的分区设备。在Linux中,硬盘被分为多个分区,每个分区都有自己的设备名称。例如,/dev/sda1表示第一 个SATA硬盘的第一个分区。

(3)然后,需要选择文件系统的类型。Linux支持多种文件系统,包括ext4、 XFS、 Btrfs等。 根据分区的特点和需求,可以选择适合的文件系统类型。

(4)最后,可以设置挂载选项。挂载选项可以控制挂载文件系统的行为,包括是否只读、是否自动挂载等。例如,使用"-o ro"选项可以将文件系统挂载为只读模式。

2.在执行挂载命令时,需要使用mount命令并指定挂载点分区设备和挂载选项。例如,下面的命令将/dev/sda1分区挂载到/mnt目录:

      mount /dev/sda1 /mnt

3.如果需要卸载已经挂载的文件系统,可以使用umount命令并指定挂载点。例如,以下命令将卸载/mnt目录上的文件系统:

      umount /mnt

4.df -h 命令:查看文件系统的挂载点

mount -a 命令:读取etc/fstab文件并挂载设备

"T"参数:可显示设备文件的类型

h”参数:可显示设备大小

blkid命令:查看设备的UUID

5.注意:mount命令挂载是临时的,系统重新启动后便失效,需要再次挂载。