beat365官方网站-必发365一些奖金-365最快比分网

磁盘管理之--磁盘分区

磁盘管理之--磁盘分区

在我们的日常工作和学习中,您是否有磁盘爆红占满的情况,导致我们主机的计算机上传下载变慢,加载文件速度慢等等。那么这一章内容希望能帮到您!!!

1.划分分区:

- 进入分区表 ==新建==分区 fdisk /dev/sdb

- 更新分区表<刷新分区表> partprobe /dev/sdb

- 格式化分区——>文件系统 mkfs.ext4 /dev/sdb1

- 挂载使用——>mount【开机自动挂载|手动挂载】

2.fdisk分区

# lsblk 查看磁盘状态的

# df -h 查看正在挂载的设备情况

# fdisk -l 查看当前系统的所有设备分区情况

# fdisk /dev/sdb

https://blog.csdn.net/FightingITPanda/article/details/122187684

硬盘容量 = 柱面数 × 盘面数(磁头数) × 扇区数 × 扇区大小(一般为512字节)

Command(m for help): m/a/b/c/d/l/n/o/p/q/s/t/u/v/w 分区

a toggle a bootable flag 设置启动分区

b edit bsd disklabel 编辑分区标签(别名)

c toggle the dos compatibility flag (标识)

d delete a partition 删除一个分区【重要】

l list known partition types 列出分区类型

m print this menu 帮助【重要】

n add a new partition 建立一个新的分区【重要】

o create a new empty DOS partition table 创建一个新的空白DOS分区表

p print the partition table 打印分区表【重要

q quit without saving changes 退出不保存设置【重要】

s createa new empty Sun disklabel 创建一个新的空的SUN标示

t changea partition's system id 改变分区的类型

u changedisplay/entry units 改变显示的单位

v verifythe partition table 检查验证分区表

w write table to disk and exit 保存分区表 【重要】

常用分区命令:

Command(m for help): m 输出帮助信息

d delete a partition 删除一个分区【重要】

n add a new partition 建立一个新的分区【重要】

p print the partition table 打印分区表【重要】

q quit without saving changes 退出不保存设置【重要】

w write table to disk and exit 保存分区表 【重要】

3.分区步骤:

(1)创建分区列表

添加磁盘(一定要重启)

查看磁盘:

lsblk

df -h

blkid /dev/

ll /dev/

(2)删除分区(只有未挂载的分区才能删除)

mount

fidisk(按d)

part

4.挂载方式

临时挂载、etc/fstable

永久挂载/etc/rc.local

/etc/rc.local 表示操作系统启动后最后一个加载的文件

格式化方式

手动挂载(临时挂载)

开机自动挂载(/etc/rc.local)

5.磁盘分区步骤:

1.添加磁盘(一定要重启)

2.查看磁盘信息(有三种方式)

lsblk

df -h

blkid

3.分区管理

fdisk /dev/sdb

n:创建分区

p:主分区 e:表示拓展分区

w:保存自动退出

4.通知操作系统(已更新分区)

partprobe /etc/sdb

5.格式化(2种格式化方式)

mkfs.EXT4

mkfs.Vfat

6.挂载(挂载到某个路径下)

mount

首先我们来了解几个概念:

1.什么是卷组?

2.什么是物理卷和逻辑卷?

3.常见分区能分成那几个?

卷组、逻辑卷和物理卷是存储管理中的三个重要概念,它们之间的关系可以用大白话来解释如下:

一、概念解释(物理卷、卷组、逻辑卷)

物理卷(PV)物理卷就像是咱们家里的一个个独立的房间(或者一块块独立的硬盘)。这些房间(硬盘)有固定的面积(容量),可以用来存放东西(数据)。在LVM(逻辑卷管理器)里,物理卷就是最基本的存储单位。

卷组(VG)卷组就像是咱们把家里的几个房间(物理卷)打通,形成一个大的空间(存储池)。在这个大空间里,咱们可以更加灵活地摆放东西(分配存储空间)。卷组就是这样一个由多个物理卷组成的逻辑组,它提供了一个统一的存储空间,方便咱们管理和使用。

逻辑卷(LV)逻辑卷就像是咱们在卷组这个大空间里划分出来的一个个小隔间(或者一个个分区)。这些小隔间(逻辑卷)有大有小,可以根据咱们的需要来划分。它们就像是卷组里的一个个独立的小房间,可以用来存放不同类型的东西(不同类型的数据)。逻辑卷就是咱们实际使用的存储设备,它们具有动态调整大小、支持快照和镜像等高级功能的特点。

二、三者之间的关系

物理卷与卷组的关系

咱们可以把物理卷想象成一块块独立的积木,而卷组就是由这些积木搭建起来的一个大房子。没有积木(物理卷),就搭建不起房子(卷组)。同样地,没有物理卷,也就无法形成卷组。

卷组与逻辑卷的关系

卷组就像是咱们家里的一个大客厅,而逻辑卷就像是咱们在客厅里摆放的一个个家具(或者一个个小隔间)。咱们可以根据需要在客厅里摆放不同大小和形状的家具(划分不同大小和属性的逻辑卷),来满足不同的使用需求。

物理卷与逻辑卷的关系

虽然物理卷和逻辑卷在物理上是分开的(它们位于不同的物理存储设备或分区上),但在逻辑上它们是紧密相连的。逻辑卷是由卷组中的物理卷动态分配的空间组成的,因此物理卷的性能和容量会直接影响到逻辑卷的性能和容量。就像咱们家里的家具(逻辑卷)虽然摆放在客厅里(卷组里),但它们实际上是由一块块积木(物理卷)搭建起来的。

综上所述,卷组、逻辑卷和物理卷就像是咱们家里的房间、客厅和家具一样,它们相互配合、相互依存,共同构成了一个灵活、高效的存储管理系统。

三、硬盘

硬盘分为两种:机械硬盘和固态硬盘

硬盘分类:

1.机械硬盘(移动硬盘)

接口类型:

(IDE--SATA I/II/III)

SCSI

优点:

方便、寿命长、便宜

2.固态硬盘(个人一定问接口类型)

知名品牌:西数

优点:高效、贵

PCIE-4.0 :目前最高。

3. 命名方式:

| OS | IDE(并口) | SATA(串口) | SCSI |

| --------- | ------------ | ------------ | ------------ |

| RHEL5 | /dev/hda | /dev/sda | /dev/sda |

| RHEL6 | /dev/sda | /dev/sda | /dev/sda |

| **RHEL7** | **/dev/sda** | **/dev/sda** | **/dev/sda** |

==s===**硬件接口类型**(sata/scsi),==d===**disk(硬盘)**,==a===**第1块硬盘**(b,第二块),==2===**第几个分区**

/dev/hd h=IDE硬盘 /dev/hdd3

/dev/vd v=虚拟硬盘 /dev/vdf7

HP服务器硬盘

/dev/cciss/c0d0

/dev/cciss/**c0d0p1** 表示: c0第一个控制器, d0第一块磁盘, p1分区1

/dev/cciss/c0d0p2 c0第一个控制器, d0第一块磁盘, p2分区2

硬盘分区方式(MBR):

方式一:

1.MBR:**把房子分成卧室和客厅**

**MBR <2TB fdisk** **4个主分区或者3个主分区+1个扩展分区(N个逻辑分区)**

MBR:分为三部分

Bootloader(主引导程序)

引导操作系统的主程序(446字节)

,硬盘的第一个扇区=512字节

DPT(64字节)分区表

- 分区表保存了硬盘的分区信息,**操作系统通过读取分区表内的信息**,就能够获得该硬盘的分区信息

- 每个分区需要占用==**16个字节大小**==,保存有文件系统标识、起止柱面号、磁头号、扇区号、起始扇区位置(4个字节)、分区总扇区数目(4个字节)等内容

- 分区表中保存的分区信息都是==**主分区与扩展分区**==的分区信息,==扩展分区不能直接使用==,需要在扩展分区内划分一个或多个==逻辑分区==后才能使用

- ==逻辑分区的分区信息==保存在==扩展分区内==而不是保存在MBR分区表内,这样,就可以突破MBR分区表只能保存4个分区的限制

硬盘有效标志(校验位)2个字节

方式二:

2.**GPT >2TB gdisk(parted) 128个主分区**

注意:从MBR转到GPT,或从GPT转换到MBR会导致**数据全部丢失**!

拓展

四、硬盘工作原理

一、硬盘的基本组成

硬盘主要由盘片、磁头、盘片主轴、控制电机、磁头控制器、数据转换器、接口、缓存等几个部分组成。其中,盘片是存储数据的介质,表面镀有磁性物质,用于记录数据;磁头则负责读写数据,通过改变或感应盘片表面的磁场状态来实现数据的读写。

二、数据的写入过程

系统指令:当系统需要向硬盘写入数据时,会发送写入指令给硬盘的控制器。

磁头定位:控制器接收到指令后,会指示磁头移动到指定的磁道上。这个过程需要磁头控制器精确控制磁头的位置。

写入数据:磁头到达指定位置后,会通过“写数据”电流产生磁场,改变盘片表面磁性物质的状态,从而将数据写入到盘片上。这个过程是永久性的,即使写电流消失,盘片上的磁性状态也会保持不变。

三、数据的读取过程

系统指令:当系统需要从硬盘读取数据时,会发送读取指令给硬盘的控制器。

磁头定位:与写入过程类似,控制器会指示磁头移动到包含所需数据的磁道上。

读取数据:磁头经过盘片指定区域时,盘片表面的磁场会使磁头产生感应电流或线圈阻抗发生变化。这些变化被转换为电信号,并经过数据转换器处理成计算机可以直接识别的数据。

五、硬盘分区管理

硬盘分区基本分区管理

1.划分分区:

- 进入分区表 ==新建==分区 fdisk /dev/sdb

- 更新分区表<刷新分区表> partprobe /dev/sdb

- 格式化分区——>文件系统 mkfs.ext4 /dev/sdb1

- 挂载使用——>mount【开机自动挂载|手动挂载】

2.fdisk分区

# lsblk 查看磁盘状态的

# df -h 查看正在挂载的设备情况

# fdisk -l 查看当前系统的所有设备分区情况

# fdisk /dev/sdb

https://blog.csdn.net/FightingITPanda/article/details/122187684

硬盘容量 = 柱面数 × 盘面数(磁头数) × 扇区数 × 扇区大小(一般为512字节)

Command(m for help): m/a/b/c/d/l/n/o/p/q/s/t/u/v/w 分区

a toggle a bootable flag 设置启动分区

b edit bsd disklabel 编辑分区标签(别名)

c toggle the dos compatibility flag (标识)

d delete a partition 删除一个分区【重要】

l list known partition types 列出分区类型

m print this menu 帮助【重要】

n add a new partition 建立一个新的分区【重要】

o create a new empty DOS partition table 创建一个新的空白DOS分区表

p print the partition table 打印分区表【重要

q quit without saving changes 退出不保存设置【重要】

s createa new empty Sun disklabel 创建一个新的空的SUN标示

t changea partition's system id 改变分区的类型

u changedisplay/entry units 改变显示的单位

v verifythe partition table 检查验证分区表

w write table to disk and exit 保存分区表 【重要】

常用分区命令:

Command(m for help): m 输出帮助信息

d delete a partition 删除一个分区【重要】

n add a new partition 建立一个新的分区【重要】

p print the partition table 打印分区表【重要】

q quit without saving changes 退出不保存设置【重要】

w write table to disk and exit 保存分区表 【重要】

3.分区步骤:

(1)创建分区列表

添加磁盘(一定要重启)

查看磁盘:

lsblk

df -h

blkid

ll

(2)删除分区(只有未挂载的分区才能删除)

umount /dev/sdb1 /mnt

一、添加分区:

思路:

1. 增加一块硬盘

2. 使用fdisk命令进行分区

3. 格式化指定分区

4. 创建一个空的目录作为挂载点

5. 挂载使用

步骤:

1. 增加硬盘

增加完硬盘记得重启系统 reboot

# lsblk 查看硬盘是否添加成功

...

sdb 8:16 0 10G 0 disk

# ll /dev/sd* 【相同的作用】

[root@web ~]# fdisk -l /dev/sdb

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x00000000

2. 使用fdisk命令分区

[root@web ~]# fdisk /dev/sdb

Command (m for help): p 打印分区表信息

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x31dd29ec

Device Boot Start End Blocks Id System

Command (m for help): n 创建新分区

Command action

e extended 扩展分区

p primary partition (1-4) 主分区

p

Partition number (1-4): 1 选择主分区编号

First cylinder (1-1305, default 1): 起始柱面默认即可(直接回车)

Using default value 1

Last cylinder, +cylinders or +5(1-1305, default 1305): +1G 分区大小1G

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x31dd29ec

Device Boot Start End Blocks Id System

/dev/sdb1 1 132 1060258+ 83 Linux

Command (m for help): n

Command action

e extended

p primary partition (1-4)

p

Partition number (1-4): 2

First cylinder (133-1305, default 133):

Using default value 133

Last cylinder, +cylinders or +size{K,M,G} (133-1305, default 1305): +1G

Command (m for help): p

Disk /dev/sdb: 10.7 GB, 10737418240 bytes

255 heads, 63 sectors/track, 1305 cylinders

Units = cylinders of 16065 * 512 = 8225280 bytes

Sector size (logical/physical): 512 bytes / 512 bytes

I/O size (minimum/optimal): 512 bytes / 512 bytes

Disk identifier: 0x31dd29ec

Device Boot Start End Blocks Id System

/dev/sdb1 1 132 1060258+ 83 Linux

/dev/sdb2 133 264 1060290 83 Linux

Command (m for help): w 保存退出(一定要保存才能分区成功)

The partition table has been altered!

Calling ioctl() to re-read partition table.

Syncing disks.

3. 再次查看分区情况

# lsblk

sdb 8:16 0 10G 0 disk

├─sdb1 8:17 0 1G 0 part

└─sdb2 8:18 0 1G 0 part

4. 刷新分区表信息

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

[root@nfs-server ~]# mount /dev/sdb1 /mnt

mount: /dev/sdb1 is write-protected, mounting read-only

mount: unknown filesystem type '(null)' 【记得格式化】

# blkid 【没有格式化的,没有类型的,不会在这个表里面】查看磁盘分区表

5. 格式化分区

[root@web ~]# mkfs.ext4 /dev/sdb1

扩展[主要是创建的文件类型同]

[root@web ~]# yum -y install dosfstools 需要mkfs.vfat命令,安装软件

[root@web ~]# mkfs.vfat /dev/sdb2

[root@web ~]# blkid

/dev/sdb1: UUID="fdf45175-c7be-4587-8655-9fbdf6681f4e" TYPE="ext4"

/dev/sdb2: UUID="66A1-04C5" TYPE="vfat"

6. 创建新的挂载点

[root@web ~]# mkdir /mnt/u01 /mnt/u02

7. 挂载使用

[root@web ~]# mount /dev/sdb1 /mnt/u01

[root@web ~]# mount /dev/sdb2 /mnt/u02

mkfs.vfat 和 mkfs.ext4 是两个用于格式化磁盘分区的命令,但它们创建的文件系统类型不同,因此具有不同的特性和用途。

mkfs.vfat: 【它通常用于可移动存储设备,如USB闪存驱动器】

这个命令用于创建一个FAT(文件分配表)文件系统。VFAT文件系统广泛兼容于多种操作系统,包括Windows、macOS和Linux。它通常用于可移动存储设备,如USB闪存驱动器、SD卡等,因为这些设备需要在不同的操作系统之间频繁交换数据。

VFAT文件系统不支持文件权限(如Linux中的读、写、执行权限)和链接(如硬链接或软链接)。

mkfs.ext4:

这个命令用于创建一个EXT4文件系统,它是EXT3文件系统的后续版本,具有更高的性能和更多的特性。

EXT4是Linux系统中常用的文件系统之一,支持大量的高级特性,如更大的文件大小、更多的子目录、文件权限、扩展属性、快照等。

EXT4文件系统特别适合于需要高性能和可靠性的Linux服务器和桌面系统。

总结:

mkfs.vfat 创建一个广泛兼容但功能相对简单的文件系统,适用于需要跨平台数据交换的场景。

mkfs.ext4 创建一个功能丰富、性能优化的文件系统,专为Linux系统设计,适用于需要高级文件系统特性的场景。

查看:

2、使用fdisk开始分区

刷新磁盘信息。

使用分区时只要挂载成功就可以了!!!

注意事项!!!!

扩展分区的大小决定了所有==逻辑分区==的大小

删除扩展分区后下面的逻辑分区都被删除

分完区后需要==手动刷新分区表==,如果刷新不成功需要==重启操作系统==

[root@nfs-server mnt]# partprobe /dev/sdd partx: /dev/sdd: error adding partition 3

创建分区的时候尽可能注意分区序号的连续性

只能删除没有挂载的分区

五、手动挂载(临时挂载)与永久挂载(开机自动挂载)

临时挂载(手动挂载):

mount [options] 需要挂载的设备 挂载点

特点:系统重启后需要重新挂载;手动卸载后需要手动挂载

-o:挂载选项 ro,sync,rw,remount

-t:文件系统类型

mount -t nfs=mount.nfs

mount -t cifs=mount.cifs

10.1.1.2 /share [smb]

mount.cifs -o user=user01,password=123 //10.1.1.2/smb /u01

mount.nfs 10.1.1.2:/share /u02

[root@localhost ~]# mount -o remount,ro /mnt/u02 //可以是挂载点也可以是设备

remount:重新挂载一个正在挂载的设备

# mount -o remount,ro /dev/sdb1

# mount -o remount,ro /mnt/u01

注意:后面可以根挂载点也可以跟设备本身

# mount /dev/sdb3 /mnt/u03/ 默认挂载,可读可写【常用】

挂载设备:真实设备、设备UUID,设备的卷标

/dev/sdb

/dev/sdb1

[root@localhost ~]# blkid /dev/sdb1 //查看设备的UUID和文件系统类型

/dev/sdb1: UUID="FD3A-F14D" TYPE="vfat"

[root@localhost ~]# blkid /dev/sdb2

/dev/sdb2: UUID="f1cc2198-7e5f-4408-9c74-9b93d4716d8d" TYPE="ext4"

[root@server ~]# e2label /dev/sdb1 DISK1

说明:e2label只能够对ext2~ext4的文件系统设置卷标

【只能给ext4 命名 vfat格式不能命名】

[root@localhost ~]# e2label /dev/sdb2 disk2

[root@localhost ~]# blkid /dev/sdb2

/dev/sdb2: UUID="f1cc2198-7e5f-4408-9c74-9b93d4716d8d" TYPE="ext4" LABEL="disk2"

卸载设备:umount

[root@localhost ~]# umount /mnt/u01

[root@localhost ~]# umount /dev/sdb2

自动挂载(系统开机自动挂载):

操作系统启动流程:

硬件初始化 硬盘、内存、。。。HD

系统初始化 /sbin/init—>xxxxxx/etc/fstab

# vim /etc/fstab //开机自动挂载

UUID="9bf6b9f7-92ad-441b-848e-0257cbb883d1" /mnt/disk1 auto defaults 0 0

UUID="4d26172c-7aff-4388-baa5-c6756c014d52" /mnt/disk2 ext4 ro 0 0

# mount -a

特点:系统重启后自动挂载;手动卸载后重启会自动挂载或者使用mount -a自动挂载

/etc/fstab文件:

格式:

要挂载的资源路径 挂载点 文件系统类型 挂载选项 dump备份支持 文件系统检测

UUID=289370eb-9459-42a8-8cee-7006507f1477 / ext4 defaults 1 1·

1段:挂载的设备(磁盘设备的文件名或设备的卷标或者是设备的UUID)

2段:挂载点(建议用一个空目录),建议不要将多个设备挂载到同一个挂载点上

3段:文件系统类型(ext3、ext4、vfat、ntfs(安装软件包)、swap等等)

4段:挂载选项

async/sync 异步/同步:

auto/noauto 自动/非自动:

rw/ro 读写/只读:

exec/noexec 可被执行/不可被执行:

remount 重新挂在一个已经挂载的文件系统,常用于修改挂载参数

user/nouser 允许/不允许其他普通用户挂载:

suid/nosuid 具有/不具有suid权限:该文件系统是否允许SUID的存在。

usrquota 这个是在启动文件系统的时候,让其支持磁盘配额,这个是针对用户的。

grpquota 支持用户组的磁盘配额。

....

defaults 同时具有rw, dev, exec, acl, async,nouser等参数。

mount -a 重新读取/etc/fstab文件内容

man mount 可以找到详细信息

5段:是否支持dump备份。//dump是一个用来备份的命令,0代表不要做dump备份,1代表要每天进行dump的动作,2也代表其他不定日期的dump备份。通常这个数值不是0就是1。数字越小优先级越高。

6段:是否用 fsck 检验扇区。//开机的过程中,系统默认会用fsck检验文件系统是否完整。0是不要检验,1表示最先检验(一般只有根目录会设定为1),2也是要检验,只是1是最先,2是其次才进行检验。

# fsck -f /dev/sdb2 强制检验/dev/sdb2上文件系统

说明:

要挂载的资源路径可以是文件系统的UUID,设备路径,文件系统的标签 ,光盘镜像文件(iso),亦或是来自网络的共享资源等

建议:

/etc/rc.local 操作系统启动后读取的最后一个文件 【注意这是一个链接文件、快捷方式】

vim /etc/rc.local

...

/usr/bin/mount -o noexec,ro /dev/sdb1 /mnt/u01

[root@nfs-server ~]# ll /etc/rc.local

lrwxrwxrwx. 1 root root 13 Jul 2 17:25 /etc/rc.local -> rc.d/rc.local

[root@nfs-server ~]# ll /etc/rc.d/rc.local

-rwxr-xr-x. 1 root root 522 Jul 12 01:58 /etc/rc.d/rc.local

[root@nfs-server ~]# chmod +x /etc/rc.d/rc.local

[root@nfs-server ~]# reboot

[root@nfs-server ~]# lsblk df -hT

扩展:

# systemctl enable nfs-server

Created symlink from /etc/systemd/system/multi-user.target.wants/nfs-server.service to /usr/lib/systemd/system/nfs-server.service.

把我们自己定义的服务,变成一个系统服务,然后开机自启动

# ll /etc/systemd/system/multi-user.target.wants

multi-user.target与运行级别

multi-user.target:是systemd中的一个目标(target),它相当于传统的init系统中的运行级别3(multi-user.target),即多用户命令行模式。在此模式下,网络服务已启动,但无图形界面。

运行级别:在systemd中,目标(target)是运行级别的现代替代品。它们代表系统应该达到的状态,而不仅仅是登录终端的数量。multi-user.target是这些目标之一,用于定义多用户命令行模式的状态。

设备挂载的方式注意事项:!!!!!

设备要被挂载,必须要有文件系统类型(mkfs.类型)

手动挂载mount mount -o 挂载选项(ro,rw,auto,noexec...) 需要挂载设备 挂载点

重启需要再次重新挂载

开机自动挂载

/etc/fstab 修改特别小心(不建议)

修改/etc/rc.local文件 启动后最后读取文件,执行该文件必须要有可执行权限

写满一个磁盘需要几步?

dd if=/dev/zero of=/mnt/disk4/1.txt bs=1M count=1000

基本磁盘,缺点是无法调整大小!!!

六、逻辑卷

物理卷(Physical Volume,PV)

物理卷是底层==真正提供容量==,存放数据的设备,它可以是整个硬盘、硬盘上的分区等。

卷组(Volume Group, VG)

卷组建立在物理卷之上,它由==一个或多个物理卷==组成。即把物理卷整合起来提供容量分配。 一个LVM系统中可以只有一个卷组,也可以包含多个卷组。

逻辑卷(Logical Volume, LV)

逻辑卷建立在卷组之上,它是从卷组中“切出”的一块空间。它是==最终用户使用的逻辑设==备。逻辑卷创建之后,其==大小可以伸缩==。

物理区域 PE(physical extent)【理论考点】

每一个物理卷被划分为称为PE(Physical Extents)的基本单元,具有唯一编号的PE是能被LVM寻址的最小单元。PE的大小可指定,默认为4 MB。 PE的大小一旦确定将不能改变,同一个卷组中的所有物理卷的PE的大小是一致的。 4MB=4096kb=4096kb/4kb=1024个block

说明:

硬盘读取数据最小单位1个扇区512字节

操作读取数据最小单位1个数据块=8*512字节=4096字节=4KB

lvm寻址最小单位1个PE=4MB

逻辑区域 LE(logical extent)

逻辑卷也被划分为被称为LE(Logical Extents) 的可被寻址的基本单位。在同一个卷组中,LE的大小和PE是相同的,并且一一对应。

lvm创建方式:管理方式

真实的物理设备——>逻辑上(命令创建)——>物理卷(pv)——>卷组(vg)——>逻辑卷(lv)——>逻辑卷格式化——>挂载使用

逆向是删除

3. 逻辑卷LVM应用

创建顺序:正向是创建,逆向是删除。。。。

pv->gv->lv(创建)

lv->gv->pv (删除)

3.1 逻辑卷创建

需求:创建一个2.5G大小的==逻辑卷==

思路:

1. 物理的设备

2. 将物理设备做成物理卷 pv

3. 创建卷组并将物理卷加入其中 vg

4. 创建逻辑卷 lv

5. 格式化逻辑卷 mkfs.ext4

6. 挂载使用 mount

步骤:

1. 物理设备【如何来分区】

sdb 8:16 0 20G 0 disk

├─sdb1 8:17 0 2G 0 part

├─sdb2 8:18 0 2G 0 part

├─sdb3 8:19 0 2G 0 part

├─sdb4 8:20 0 2G 0 part

├─sdb5 8:21 0 2G 0 part

├─sdb6 8:22 0 2G 0 part

├─sdb7 8:23 0 2G 0 part

└─sdb8 8:24 0 2G 0 part

2. 创建物理卷

[root@server ~]# pvcreate /dev/sdb1 /dev/sdb2

查看物理卷:

[root@server ~]# pvs 简单查看pvscan

PV VG Fmt Attr PSize PFree

/dev/sdb1 lvm2 a-- 2.01g 2.01g

/dev/sdb2 lvm2 a-- 2.01g 2.01g

[root@server ~]# pvdisplay /dev/sdb1 详细查看

3. 创建卷组并将物理卷加入其中

[root@server ~]# vgcreate vg01 /dev/sdb1 /dev/sdb2

Volume group "vg01" successfully created

查看卷组信息:

[root@server ~]# vgs vg01 简单查看

VG #PV #LV #SN Attr VSize VFree

vg01 2 0 0 wz--n- 4.01g 4.01g

[root@server ~]# vgdisplay vg01 详细查看

4. 创建逻辑卷 【重点】

[root@server ~]# lvcreate -n lv01 -L 2.5G vg01

Logical volume "lv01" created

在操作系统层面映射两个地方:

[root@server ~]# ll /dev/mapper/vg01-lv01

lrwxrwxrwx 1 root root 7 Jan 7 11:16 /dev/mapper/vg01-lv01 -> ../dm-2

[root@server ~]# ll /dev/vg01/lv01

lrwxrwxrwx 1 root root 7 Jan 7 11:16 /dev/vg01/lv01 -> ../dm-2

结论:其实同时指向了:/dev/dm-2

注意逻辑卷的顺序:

[root@nfs-server dev]# ll /dev/mapper/centos-root

lrwxrwxrwx 1 root root 7 Aug 20 19:37 /dev/mapper/centos-root -> ../dm-0

[root@nfs-server dev]# ll /dev/mapper/centos-swap

lrwxrwxrwx 1 root root 7 Aug 20 19:37 /dev/mapper/centos-swap -> ../dm-1

[root@nfs-server dev]# ll /dev/mapper/vg01-lv01

lrwxrwxrwx 1 root root 7 Aug 20 19:47 /dev/mapper/vg01-lv01 -> ../dm-2

查看逻辑卷的信息:

[root@server ~]# lvdisplay /dev/vg01/lv01

-n:指定逻辑卷的名字

-L:指定逻辑卷的大小 --size Size[m|UNIT] VG 【常用】

-l:指定逻辑卷的大小 --extents Number[PERCENT]

举例:

-l 100 100个PE,每个PE大小默认4M,故逻辑卷大小为400M 【相对小的lv】

-l 50%free 卷组剩余空间的50%

[root@server ~]# vgs vg01

VG #PV #LV #SN Attr VSize VFree

vg01 1 1 0 wz--n- 2.00g 516.00m

创建大小为200M的逻辑卷lv02;每个PE为4M,-l50指定50个PE,大小为200M

[root@server ~]# lvcreate -n lv02 -l50 vg01

Logical volume "lv02" created

[root@server ~]# vgs vg01

VG #PV #LV #SN Attr VSize VFree

vg01 1 2 0 wz--n- 2.00g 316.00m

[root@server ~]# lvs /dev/vg01/lv02

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

lv02 vg01 -wi-a----- 200.00m

创建大小为剩余卷组vg01空间的50%的逻辑卷lv03

[root@server ~]# lvcreate -n lv03 -l50%free vg01

Logical volume "lv03" created

[root@server ~]# lvs /dev/vg01/lv03

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

lv03 vg01 -wi-a----- 156.00m

[root@server ~]# vgs vg01

VG #PV #LV #SN Attr VSize VFree

vg01 1 3 0 wz--n- 2.00g 160.00m

5. 格式化逻辑卷

[root@server ~]# mkfs.ext4 /dev/vg01/lv01

6. 挂载使用

1)创建一个空的挂载点

2)挂载使用

[root@server ~]# mount /dev/vg01/lv01 /mnt/u01

3.2 逻辑卷动态扩容

需求:将/mnt/u01目录动态扩容到3

思路:

1. 查看/mnt/u01目录所对应的逻辑卷是哪一个 /dev/mapper/vg01-lv01

2. 查看当前逻辑卷所在的卷组vg01剩余空间是否足够

测试:# dd if=/dev/zero of=testfile count=5 bs=1G

3. 如果vg01空间不够,得先扩容卷组,再扩容逻辑卷

4. 如果vg01空间足够,直接扩容逻辑卷

步骤:

1. 查看/mnt/u01目录属于哪个卷组

[root@web ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg01-lv01 2.4G 2.4G 0 100% /mnt/u01

[root@web ~]# lvs

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Conver

lv01 vg01 -wi-ao---- 1.50g

2. 卷组的剩余空间

[root@web ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg01 1 2 0 wz--n- 19.70g 0

vg02 1 1 0 wz--n- 2.00g 516.00m

结果:当前卷组空间不足我扩容

3. 扩容逻辑卷所在的卷组

1)首先得有物理设备 /dev/sdb3

2) 将物理设备做成物理卷

# pvcreate /dev/sdb3

3)将物理卷加入到卷组中(卷组扩容)

[root@web ~]# vgextend vg01 /dev/sdb3

Volume group "vg01" successfully extended

[root@web ~]# pvs

注意:

正常情况下,应该先将/dev/sdb3物理设备创建为物理卷再加入到卷组中;如果直接加入卷组,系统会自动帮你将其做成物理卷。

[root@web ~]# vgs

VG #PV #LV #SN Attr VSize VFree

vg01 3 3 0 wz--n- <5.99g 2.64g

4. 扩容逻辑卷 【第二种方式用的多】

[root@web ~]# lvextend -L 3G /dev/vg01/lv01 -L 3G最终的大小

或者

[root@web ~]# lvextend -L +1.5G /dev/vg01/lv01 -L +1.5G 扩容1.5G

5. 查看结果

[root@web ~]# lvs

LV VG Attr LSize Pool Origin Data% Move Log Cpy%Sync Convert

lv_root vg01 -wi-ao---- 17.70g

lv_swap vg01 -wi-ao---- 2.00g

lv01 vg02 -wi-ao---- 3.00g 已经扩容到了3G

[root@web ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg01-lv_root 18G 5.9G 11G 36% /

tmpfs 931M 0 931M 0% /dev/shm

/dev/sda1 291M 33M 244M 12% /boot

/dev/sr0 4.2G 4.2G 0 100% /mnt

/dev/mapper/vg02-lv01 1.5G 35M 1.4G 3% /u01 实际并没有改变

6. 同步文件系统

[root@web ~]# resize2fs /dev/vg01/lv01

resize2fs 1.42.9 (28-Dec-2013)

Filesystem at /dev/vg01/lv01 is mounted on /mnt/u01; on-line resizing required 【在线扩容成功】

old_desc_blocks = 1, new_desc_blocks = 1

The filesystem on /dev/vg01/lv01 is now 825344 blocks long.

7. 再次查看验证

[root@web ~]# df -h

Filesystem Size Used Avail Use% Mounted on

/dev/mapper/vg01-lv_root 18G 5.9G 11G 36% /

tmpfs 931M 0 931M 0% /dev/shm

/dev/sda1 291M 33M 244M 12% /boot

/dev/sr0 4.2G 4.2G 0 100% /mnt

/dev/mapper/vg02-lv01 3.0G 35M 2.8G 2% /u01 扩容成功

3.3 逻辑卷相关命令

创建物理卷:pvcreate

pvcreate /dev/sdb1

创建卷组:vgcreate

vgcreate vg01 /dev/sdb1

创建逻辑卷:lvcreate 【三种方式】

lvcreate -n lv01 -L 1G vg01 1G

lvcreate -n lv01 -l 100 vg01 400M

lvcreate -n lv01 -l 100%free vg01

删除逻辑卷:lvremove

lvremove /dev/vg01/lv01

删除卷组:vgremove

vgremove vg01

说明:卷组里的物理卷没有被使用才可以直接删除卷组

删除物理卷:pvremove

pvremove /dev/sdb1

扩容卷组:vgextend

vgextend vg01 /dev/sdb2

扩容逻辑卷:lvextend

lvextend /dev/vg01/lv01 -L +2G

同步文件系统:

resize2fs /dev/vg01/lv01

裁剪卷组:vgreduce

vgreduce vg01 /dev/sdb2

裁剪逻辑卷:lvreduce

扩容swap空间

增加一个硬盘或者分区来扩容swap空间

作用: ‘提升' 内存的容量,防止OOM(Out Of Memory)(内存溢出) 虚拟内存

设置交换分区大小为内存的2倍

生产(约定)

大于 4GB 而小于 16GB 内存的系统,最小需要 4GB 交换空间;

大于 16GB 而小于 64GB 内存的系统,最小需要 8GB 交换空间;

大于 64GB 而小于 256GB 内存的系统,最小需要 16GB 交换空间。

查看swap空间大小:

[root@web ~]# free -m

total used free shared buffers cached

Mem: 1861 646 1215 0 9 60

-/+ buffers/cache: 576 1285

Swap: 2047 0 2047

[root@web ~]# swapon -s

Filename Type Size Used Priority

/dev/dm-1 partition 2097144 0 -1

[root@web ~]# mkswap /dev/sdb8

Setting up swapspace version 1, size = 2104476 KiB

no label, UUID=485ff8ad-a636-4556-a2e7-4ee9efc78afb

[root@web ~]# blkid /dev/sdb8

/dev/sdb7: UUID="485ff8ad-a636-4556-a2e7-4ee9efc78afb" TYPE="swap"

//激活swap分区。swap空间不能手动挂载

[root@server ~]# swapon /dev/sdb8

[root@server ~]# swapon -s

Filename Type Size Used Priority

/dev/dm-1 partition 2031608 0 -1

/dev/sdb7 partition 2064312 0 -2

作业:可以尝试做一下!!

思路: [实战完整流程]

0. 准备好物理设备,并创建一个逻辑卷,大小根据mysql数据库的实际大小再大一些,挂载到系统中

1. 最好在系统维护时间操作(23:00-8:00)

2. 先停止前端应用 LAMP apache

3. 停止mysql数据库(建议备份mysql数据库) [重点]

4. 迁移mysql数据文件

步骤:

1. 添加一块物理硬盘[是否需要重启开服务器是否支持热插拔]

sdb 8:16 0 20G 0 disk

├─sdb1 8:17 0 2G 0 part

├─sdb2 8:18 0 2G 0 part

├─sdb3 8:19 0 2G 0 part

├─sdb4 8:20 0 2G 0 part

├─sdb5 8:21 0 2G 0 part

├─sdb6 8:22 0 2G 0 part

├─sdb7 8:23 0 2G 0 part

└─sdb8 8:24 0 2G 0 part

2. 创建大小为8G的逻辑卷

1)创建物理卷

[root@server ~]# pvcreate /dev/sdb[12345]

2)创建卷组vg_mysql

[root@server ~]# vgcreate vg_mysql /dev/sdb[12345]

[root@server ~]# vgs vg_mysql

VG #PV #LV #SN Attr VSize VFree

vg_mysql 5 0 0 wz--n- 9.98g 9.98g

3)创建逻辑卷lv_mysql

[root@server ~]# lvcreate -n lv_mysql -L 8G vg_mysql

[root@server ~]# lvs /dev/vg_mysql/lv_mysql

lv_mysql vg_mysql -wi-a----- 8.00g

4)格式化为ext4文件系统

[root@server ~]# mkfs.ext4 /dev/vg_mysql/lv_mysql

5)挂载使用

a. 创建一个空的挂载点/u01

[root@server ~]# mkdir /u01

b. 挂载逻辑卷lv_mysql到/u01目录

[root@server ~]# mount /dev/vg_mysql/lv_mysql /u01

3. 停止前端web服务 【如果没有mysql服务,请安装】

# rpm -ivh http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm

# yum -y install mysql-community-server

[root@server ~]# systemctl restart mysqld

# netstat -ntlp

4. 停止mysql数据库

# systemctl stop mysqld

[root@server ~]# systemctl status mysqld

5. 备份mysql数据库到另外一台备份机 (实验环境不是必须)

备份机:10.1.1.2 备份目录:/backup

[root@server ~]# rsync -av /var/lib/mysql 10.1.1.2:/backup/

6. 将/usr/local/mysql/目录里的所有数据文件同步到逻辑卷上,即/u01目录

[root@server ~]# rsync -av /var/lib/mysql/ /u01

查看是否同步完成:

[root@server ~]# ls /u01

[root@server ~]# du -sh /u01 查看大小是否和原来mysql数据库大小一致

7. 卸载逻辑卷

[root@server ~]# umount /u01

8. 删除/usr/local/mysql/目录里原来的数据文件

注意:删之前一定要确定成功备份了!!!

[root@server ~]# rm -rf /var/lib/mysql/*

9. 挂载逻辑卷lv_mysql到mysql的安装目录/usr/local/mysql

[root@server ~]# mount /dev/vg_mysql/lv_mysql /var/lib/mysql/

开机自动挂载:

vim /etc/rc.local

...

/usr/bin/mount /dev/vg_mysql/lv_mysql /var/lib/mysql/

10. 启动数据库

[root@server ~]# systemctl restart mysqld

11. 启动web服务

[root@server ~]# systemctl status mysqld

12.测试验证

访问之前的网站看是否可以正常访问

ps -ef|grep mysql

lsof -i:3306

systemctl status mysql

netstat -tnlpnetstat -tnlp| grep mysql

ss -tnlp |grep mysql

telnet localhost 3306

systemctl stop mysqld

systemctl status mysqld

lvm:表示逻辑卷

part:分区

disk:磁盘

七、GTP分区

parted工具区分

# yum install -y gdisk

GPT 128个主分区

1.创建分区

# gdisk -l /dev/sdc

# gdisk /dev/sdc

# partprobe /dev/sdc

# ll /dev/sdc*

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

# mkfs.xfs /dev/sdc1

3.挂载(手动、开机自动、autofs自动)

# mkdir /mnt/disk1

# mkdir /mnt/disk2

# mount -t xfs -o ro /dev/sdb1 /mnt/disk1 //手动挂载

# umount /mnt/disk1

八、实战

1、基本练习

添加一块新的10G物理磁盘到你的Linux操作系统中,并将其分为2个分区(大小自己决定)

将sdb1做成大小为2G的逻辑卷lv01挂载到系统中的/u01目录下面,并且在/u01目录下面创建file1~file5 5个文件

假设sdb1分区有坏块,现在需要将sdb1分区上的数据快速放到另外块盘sdb2上,怎么做?

1. 将/dev/sdb2加入到sdb1所在的卷组中

2. 使用pvmove命令移动

[root@server ~]# pvmove /dev/sdb1 /dev/sdb2

由于业务需要,/u01目录需要扩大到9G,怎么做?

2、实战演练

部署好LAMP环境,MySQL数据库在本机的根文件系统中(如环境已有可以直接用)

添加一块虚拟硬盘,使用LVM逻辑卷管理,将MySQL迁移到逻辑卷中,并保证网站正常访问

一、磁盘分区(挂载练习):

1.手动挂载过程

yum -y install lrzsz

yum -y install inotify-tools

yum -y isntall dosfstools (格式化分区一定要装,mkfs.vfat命令需要)

lsblk:先显示原有磁盘是否挂载和分区

fdisk /etc/sdb1:相应路径下的磁盘进行分区

lsblk:查看分区情况

partprobe /dev/sdb:刷新分区(通知操作系统)

mkfs.ext4 /etc/sdb1 或者mkfs.Vfat /etc/sdb1:格式化磁盘(mkds.Vfat格式介于windows和linux之间,**mkfs.ext4格式则是用于linux中使用**)

blkid:查看是否格式化成功

mount /etc/sdb1 /mnt :将、etc/sdb1挂载到 /mnt下

lsblk:显示是否挂载成功

df -h :显示高可读挂载成功

umount /etc/sdb1 /mnt/u01 :挂载、etc/sdb1 磁盘到、mnt/u01上(每次挂载都要刷新磁盘,通知操作系统)

如果需要重新挂载必须是已经挂载好的才能重新挂载。

e2label /dev/sdb1 DISK1 :设置卷的标记说明:e2label只能够对ext2~ext4的文件系统设置卷标 [起一个别名]

如果不想要了就移除挂载:

(原本有的挂载点)

2.开机自动挂载:建立在没有挂载点的情况下。

rc.local文件未加权限

将自定义的服务变成一个系统,把我们自己定义的服务,变成一个系统服务,然后开机自启动

总结:挂载设备的方式【考点总结】

设备要被挂载,必须要有文件系统类型(mkfs.类型)

手动挂载mount mount -o 挂载选项(ro,rw,auto,noexec...) 需要挂载设备 挂载点

重启需要再次重新挂载

开机自动挂载

/etc/fstab 修改特别小心(不建议)

修改/etc/rc.local文件 启动后最后读取文件,执行该文件必须要有可执行权限

写满一个磁盘需要几步?

dd if=/dev/zero of=/mnt/disk/1.txt bs=1M count=1000

基本磁盘,缺点是无法调整大小!!!

← 上一篇: 淘宝主播如何入驻?入驻步骤有哪些?
下一篇: 越狱源和好用的插件 →

相关推荐

如何在 Windows 10 中播放 DVD ▷➡️

如何在 Windows 10 中播放 DVD ▷➡️

2025-07-12 20:55:47 阅读: 8446
美康粉黛的祛斑霜真的有效果吗?

美康粉黛的祛斑霜真的有效果吗?

2025-09-05 22:56:29 阅读: 2497
你好:在哪里能买到春药

你好:在哪里能买到春药

2025-06-28 04:35:09 阅读: 543
如何看流量结构图数据库

如何看流量结构图数据库

2025-07-13 18:42:29 阅读: 7880
借呗借的钱到哪里去了?

借呗借的钱到哪里去了?

2025-08-20 10:42:09 阅读: 4134
如何使用英语趣配音以及使用它的意义

如何使用英语趣配音以及使用它的意义

2025-07-14 04:20:58 阅读: 191
觐山之路

觐山之路

2025-07-01 03:57:48 阅读: 5360
莲菜凉拌的做法

莲菜凉拌的做法

2025-08-21 09:47:39 阅读: 4486
心悦成长值怎么算 心悦里面的成长值

心悦成长值怎么算 心悦里面的成长值

2025-07-26 23:05:19 阅读: 2313