Linux系统的存储管理

存储管理1

  • 基本分区
    • 1.磁盘概念
    • 2. 磁盘管理
  • 逻辑卷LVM
    • 1. LVM简介
    • 2. LVM创建
    • 3. VG管理
    • 4. LV扩容
  • 交换分区管理Swap
    • 1. Swap的作用
    • 2. 查看当前交换分区
    • 3. 增加交换分区

基本分区

1.磁盘概念

  • 磁盘/硬盘/disk是同一样东西,与内存的差别就是容量比较大

  • 类型

    从工作原理上分为机械硬盘和固态硬盘.
    机械硬盘:是传统普通硬盘,主要由:盘片,磁头,盘片转轴及控制电机,磁头控制器,数据转换器,接口,缓存等几个部分组成。
    固态硬盘:固态驱动器(Solid State Disk或Solid State Drive,简称SSD),俗称固态硬盘,固态硬盘是用固态电子存储芯片阵列而制成的硬盘
    Linux系统的存储管理_第1张图片
    磁盘大小4K
    Linux系统的存储管理_第2张图片
    Linux系统的存储管理_第3张图片
    Linux系统的存储管理_第4张图片

扇区(Sector),由于硬盘的设计机构,工作时磁道的角速度相同。由于径向长度不同,所以,线速度也不同,外圈的线速度较内圈的线速度大,即同样的转速下,外圈在同样时间段里,划过的圆弧长度要比内圈划过的圆弧长度大。每段圆弧叫做一个扇区,扇区从“1”开始编号,每个扇区中的数据作为一个单元同时读出或写入。

磁道(Track),盘片上的同心圆,由厂商完成划分,其容量由盘片的密度决定。在最外圈,离主轴最远的地方是“0”磁道,硬盘数据的存放就是从最外圈开始的

盘片(Platters)为数据的主要存储介质,往往有多片,每个碟片都有两面,因此也会相对应每碟片有2个磁头,工作时,所有盘片由一个点击带动同时旋转

柱面(Cylinder),硬盘通常由重叠的一组盘片构成,每个盘面都被划分为数目相等的磁道,并从外缘的“0”开始编号,具有相同编号的磁道形成一个圆柱,称之为磁盘的柱面,划分分区是按照柱面划分的

簇(Data cluster),有时被称为分配单元(allocation unit),是操作系统中磁盘文件存储管理的单位,可为一个或多个物理扇区组成

  • 尺寸
    磁盘从尺寸来讲主要分为3.5英寸,2.5英寸和1.8英寸的

Linux系统的存储管理_第5张图片

Linux系统的存储管理_第6张图片

  • 接口

    Linux的一个重要思想之一就是一切皆文件,而磁盘作为存储数据的重要设备,在系统中也有与之对应的设备文件。根据不同接口类型的设备,其设备文件的命名方式亦不同

    IDE

    IDE(Integrated Drive Electronics),集成磁盘电子接口,事实上IDE为磁盘的形式,这种硬盘一般使用PATA(Parallel Advanced Technology Attachment)接口,我们通常所谓的IDE硬盘即接口为PATA的硬盘,该接口为并行接口,其理论传输速度为133MB/s。

    SATA

    SATA(Serial Advanced Technology Attachment),即串行ATA,SATA有多种规格,SATA2的理论速度为3Gbps,SATA3的理论速度为6Gbps,该接口排线与SCSI兼容,SATA硬盘也可接上SAS接口。设备文件以sd开头

    Linux系统的存储管理_第7张图片
    Linux系统的存储管理_第8张图片

    SAS

    SAS(Serial Attached SCSI)串行SCSI,是新一代的SCSI技术,SAS并支持与序列式ATA(SATA)设备兼容,且两者可以使用相类似的电缆,理论速度6Gbps,设备文件通常以sd开头

    SCSI

    SCSI(Small Computer System Interface)小型计算机系统接口,是一种用于计算机及其周边设备之间(硬盘、软驱、光驱、打印机、扫描仪等)系统级接口的独立处理器标准。
    Linux系统的存储管理_第9张图片

    USB

    USB(Universal Serial Bus)通用串行总线,是连接计算机系统与外部设备的一种串口总线标准,也是一种输入输出接口的技术规范,被广泛地应用于个人计算机和移动设备等信息通讯产品,并扩展至摄影器材、数字电视(机顶盒)、游戏机等其它相关领域,相信大家不会陌生
    目前日渐普及的USB Type-C

Linux系统的存储管理_第10张图片

  • 转速
    转速,转速是硬盘内电机主轴的旋转速度,也就是硬盘盘片在一分钟内所能完成的最大转数,即RPM(Rotations Per Minute),个人设备常见的有5400RPM,7200RPM

  • 命名
    kernel对不同接口硬盘命名方式
    RHEL7/centos7主要分为

IDE(并口):通常为/dev/hda , /dev/hdb等。

SATA(串口):通常为 /dev/sda , /dev/sdb
/dev设备文件目录,sda是一个文件,s代表sata就是串口,d代表磁盘,a第一块

  • 分区方式
    MBR:主引导记录(MBR,Master Boot Record)是位于磁盘最前边的一段引导,MBR支持最大的磁盘容量是 <2TB。设计时分配4个分区,如果希望超过4个分区,需放弃主分区,改为扩展分区和逻辑分区。

    GPT:全局唯一标识分区表(GUIDPartition Table,缩写:GPT)是一个实体硬盘的分区表的结构布局的标准,GPT 支持大于2T的硬盘,支持128个分区

2. 磁盘管理

  • 添加磁盘,VMware添加磁盘需先关闭电源,编辑虚拟机设置,然后添加磁盘
    Linux系统的存储管理_第11张图片
    Linux系统的存储管理_第12张图片
    新硬盘管理

分区(MBR或者GPT) ---->格式化/文件系统 Filesystem ----> 挂载mount

  • 查看磁盘
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 8,  0 1月  25 09:35 /dev/sda
brw-rw----. 1 root disk 8,  1 1月  25 09:35 /dev/sda1
brw-rw----. 1 root disk 8,  2 1月  25 09:35 /dev/sda2
brw-rw----. 1 root disk 8, 16 1月  25 09:35 /dev/sdb
brw-rw----. 1 root disk 8, 32 1月  25 09:35 /dev/sdc
brw-rw----. 1 root disk 8, 48 1月  25 09:35 /dev/sdd

Linux系统的存储管理_第13张图片
名称 设备类型 序号 是否可移动设备 大小 是否只读 磁盘或分区 挂载点

  • 创建分区
[root@localhost ~]# fdisk      /dev/sdb    启动分区工具
[root@localhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。

更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。  
                     。
Device does not contain a recognized partition table
使用磁盘标识符 0xd43058cb 创建新的 DOS 磁盘标签。

命令(输入 m 获取帮助)

欢迎界面,输入帮助指令或操作指令

然后按“ n "键

命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended     
Select (default p): 

请选择主分区,或扩展分区

敲击字母“p”键

Select (default p): p
分区号 (1-4,默认 1)

选择分区号

敲击数字“1”键

分区号 (1-4,默认 1):1
起始 扇区 (2048-10485759,默认为 2048)

选择磁盘开始的扇区

敲击回车键

起始 扇区 (2048-10485759,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759)

选择磁盘分区结束的扇区,即分区大小

输入分区大小“+2G” 后回车,实际环境根据磁盘划分,如4T磁盘,可以500G 一个分区。

Last 扇区, +扇区 or +size{K,M,G} (2048-10485759,默认为 10485759)+2G
分区 1 已设置为 Linux 类型,大小设为 2 GiB

命令(输入 m 获取帮助)

已经完成 2G 大小分区记录。但未生效

输入w保存分区信息


`命令(输入 m 获取帮助):w
The partition table has been altered!

Calling ioctl() to re-read partition table.
正在同步磁盘。
[root@localhost ~]# ``

自动退出分区工具

刷新分区表

[root@localhost ~]#  partprobe /dev/sdb  

查看分区结果

[root@localhost ~]# fdisk -l /dev/sdb
磁盘 /dev/sdb:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0xd43058cb

   设备 Boot      Start         End      Blocks   Id  System
/dev/sdb1            2048     4196351     2097152   83  Linux

  • 创建文件系统
[root@localhost ~]# mkfs.ext4       /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签=
OS type: Linux
块大小=4096 (log=2)
分块大小=4096 (log=2)
Stride=0 blocks, Stripe width=0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块=0
Maximum filesystem blocks=536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 
	32768, 98304, 163840, 229376, 294912

Allocating group tables: 完成                            
正在写入inode表: 完成                            
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 

划分磁盘完毕,/dev/sdb1,新创建的分区,sdb2,sdb3 都要格式化。

  • 挂载mount
    创建挂载点,一个分区一个挂载点
[root@localhost ~]# mkdir /mnt/disk1
[root@localhost ~]#mount -t ext4  /dev/sdb1 /mnt/disk1
  • 查看挂载信息
[root@server0 ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on

/dev/sdb1 ext4  2G    6M   1.9G  3% /mnt/disk1


分区     文件系统   大小  占用  空闲  占比  挂载点

或者

[root@server0 ~]# mount

/dev/sdb1 on /mysql_data type xfs (rw,relatime,seclabel,attr2,inode64,noquoa)
/dev/sdb3 on /mnt/disk1/disk2/disk3/disk4 type ext4 (rw,relatime,seclabel,dta=ordered)

mount 看的是磁盘有没有特殊属性,具体属性在后续讲解。

关于挂载重启失效的问题

永久挂载: fstab

写入自启动文件

[root@server0 ~]# vim /root/.bashrc 
[root@server0 ~]# mount -t ext4  /dev/sdb1 /mnt/disk1
不能影响文件原先的内容
  • 创建扩展分区
    因为磁盘主分区的数量不可以超过4个,所以放弃一个主分区,选择创建扩展分区。

如果已经创建了四个主分区按以下要求做
先卸载

[root@server0 ~]# umount    /dev/sdb4
[root@server0 ~]# fdisk    /dev/sdb

删除主分区

输入d 删除分区
按下4 第四个分区
按下p 打印分区列表,查看删除结果

创建扩展分区
按下n 创建分区
按下e 创建扩展分区
回车 起始扇区
回车 磁盘的结尾

创建逻辑分区

与创建主分区方式一致

如果最后一个主分区还没创建 按以下操作

按下n 创建分区
按下e 创建扩展分区
然后直接回车默认就好
最后w保存退出

  • 重启后的影响
    mount临时挂载就消失了。需要使用永久挂载
[root@server0 ~]# vim /etc/fstab 
[root@server0 ~]# /dev/sdb1  /mnt/disk1  ext4 defaults 0 0
                    磁盘    挂载点 文件系统类型  默认选项 优先级 优先级

然后使用立刻挂载命令 mount -a
这样每次启动虚拟机 就可以立即挂载

逻辑卷LVM

1. LVM简介

基本磁盘,缺点是无法调整大小,所以产生了LVM,

LVM:管理磁盘的一种方式,性质与基本磁盘无异,能随意扩张大小

LVM是 Logical Volume Manager(逻辑卷管理)
PV:物理卷(Physical volume):一块硬盘,或多块硬盘
VG:卷组(Volume Group):一堆磁盘的统称
LV:逻辑卷(Logical Volume):一个逻辑分区,一个分区

2. LVM创建

  • 准备磁盘
准备物理磁盘
[root@localhost ~]# ll /dev/sd*
brw-rw----. 1 root disk 253, 32 Jun 6 17:38 /dev/sdc
brw-rw----. 1 root disk 253, 48 Jun 6 17:38 /dev/sdd
brw-rw----. 1 root disk 253, 64 Jun 6 17:38 /dev/sde

将物理磁盘,转换成物理卷-PV

[root@localhost ~]# pvcreate /dev/sdc
Physical volume "/dev/sdc" successfully created

查看PV信息


[root@localhost ~]# pvscan 
PV /dev/vdd lvm2 [2.00 GiB]
Total: 1 [2.00 GiB] / in use: 0 [0 ] / in no VG: 1 [2.00 GiB]

[root@localhost ~]# pvs
PV VG Fmt Attr PSize PFree
/dev/vdd lvm2 a-- 2.00g 2.00g

[root@localhost ~]# pvdisplay

创建卷组-VG

[root@localhost ~]# vgcreate vg1 /dev/sdc
Volume group "vg1" successfully created

第一种方法,查看卷组的摘要信息。卷组名,物理卷数量,逻辑卷数量,大小等。

[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 1 0 0 wz--n- 2.00g 2.00g

第二种方法,扫描卷组信息。

[root@localhost ~]# vgscan 
Reading all physical volumes. This may take a while...
Found volume group "vg1" using metadata type lvm2

第三种方法。显示卷组详细信息。

[root@localhost ~]# vgdisplay 
--- Volume group ---
VG Name vg1
System ID 
Format lvm2
Metadata Areas 1
Metadata Sequence No 1
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 0
Open LV 0
Max PV 0
Cur PV 1
Act PV 1
VG Size 2.00 GiB					//重点观察
PE Size 4.00 MiB					//重点观察
Total PE 511						//重点观察
Alloc PE / Size 0 / 0 
Free PE / Size 511 / 2.00 GiB
VG UUID 7E4tlj-l0a2-ph52-OytH-eaq7-58K6-2S4n8V

创建lv

[root@localhost ~]# lvcreate -L 200M -n lv1 vg1
指定大小,单位M,G
创建逻辑卷  -L大小  -n卷名   vg1组名

查看lv


[root@localhost ~]# lvscan 
ACTIVE '/dev/vg1/lv1' [400.00 MiB] inherit
ACTIVE '/dev/vg1/lv2' [200.00 MiB] inherit

创建文件系统并挂载

创建文件系统/格式化
[root@localhost ~]# mkfs.ext4 /dev/vg1/lv1
注意:/dev/卷组名/逻辑卷名
创建挂载点
[root@localhost ~]# mkdir  /mnt/lv1
挂载
[root@localhost ~]#mount /dev/vg1/lv1     /mnt/lv1

查看挂载信息

[root@localhost ~]# df
Filesystem 1K-blocks Used Available Use% Mounted on
/dev/mapper/vg1-lv1 651948 32928 619020 6% /mnt/lv1
/dev/mapper/vg1-lv2 245671 2062 226406 1% /mnt/lv2

逻辑卷管理完毕,就可以向挂载点写入数据了

3. VG管理

扩大VG vgextend
环境:/dev/vg1 容量由5G 扩容到 10G。

创建PV。而后使用第二步,将PV增加到VG中。
[root@localhost ~]# pvcreate /dev/sdd
扩展VG,同时包含方法1.
[root@localhost ~]# vgextend vg1 /dev/sdd
Volume group “vg1” successfully extended

查看VG

[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 2 0 wz--n- 3.99g 3.76g

4. LV扩容

扩大LV:     lvextend
第一  lv扩容

查看VG空间

[root@localhost ~]# vgs
VG #PV #LV #SN Attr VSize VFree
vg1 2 1 0 wz--n- 9.99g 5.99g
观察VG是否有剩余空间

扩容lv

  [root@localhost ~]# lvextend -L +200M /dev/vg1/lv1
  增加200M空间,给lv2

第二 FS扩容

    先观察文件系统当前容量。
[root@localhost ~]# df -Th 
/dev/mapper/vg1-lv2 ext4 240M 32M 192M 15% /mnt/lv2
   [root@localhost ~]# resize2fs /dev/vg1/lv1
再次观察df -hT 的分区大小和上一次的对比一下。大小已经发生改变。

查看FS


[root@localhost ~]# df -Th
Filesystem Type Size Used Avail Use% Mounted on
/dev/mapper/vg1-lv1 xfs 765M 67M 698M 9% /mnt/lv1
/dev/mapper/vg1-lv2 ext4 488M 32M 429M 7% /mnt/lv2

之前的输出结果,文件系统的大小已经发生改变。

交换分区管理Swap

1. Swap的作用

swap的功能就是在内存不够的情况下,操作系统先把内存中暂时不用的数据,存到硬盘的交换空间,腾出内存来让别的程序运行,和Windows的虚拟内存(pagefile.sys)的作用是一样的。
swap的大小推荐是设置交换分区大小为内存的2倍
大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间;
大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间;
太大得话 基本上会用不上

2. 查看当前交换分区

[root@localhost ~]# free -m
              total        used        free      shared  buff/cache   available
Mem:     1980         704         614          19         661        1110
Swap:     2047           0        2047

free –m 空间大小以兆为单位进行显示(默认以字节为单位进行显示)
还有一种
free –g 空间大小以GB为单位进行显示

total:总内存大小;
used:已用内存大小;
free:未用内存大小;
shared:用于共享的内存;
buffers:用于缓冲的(通常是为了写操作设定的);
cached:用于缓存的(通常是为了读操作设定的)。
-/+ buffers/cache:used表示真正意义上的已用内存空间大小(减去缓存缓冲)

3. 增加交换分区

准备分区

准备将/dev/sde磁盘,划分为1G分区为例
[root@localhost ~]# fdisk    /dev/sde
[root@localhost ~]# partprobe /dev/sde
[root@localhost ~]# ll /dev/sde*
brw-rw----. 1 root disk 253, 16 12月 6 10:18 /dev/sde
brw-rw----. 1 root disk 253, 17 12月 6 10:18 /dev/sde1

格式化

[root@localhost ~]# mkswap /dev/sde1

挂载

[root@localhost ~]# swapon /dev/sde1 

验证

[root@localhost ~]# free -m

最后查看增加后的交换分区

你可能感兴趣的:(Linux系统的存储管理)