关于建设网站的申请报告,多语言网站模板,龙岩天宫山是什么菩萨,上海有名的设计工作室文章目录 基本分区磁盘简介磁盘分类linux的磁盘命名磁盘的分区方式 管理磁盘虚拟机添加硬盘查看磁盘信息磁盘分区流程创建分区创建文件系统挂载mount查看挂载信息 剩余空间继续分区MBR如何划分更多的分区为什么只能有4个主分区扩展分区的引入 逻辑卷LVM是什么特点术语创建LVMVG… 文章目录 基本分区磁盘简介磁盘分类linux的磁盘命名磁盘的分区方式 管理磁盘虚拟机添加硬盘查看磁盘信息磁盘分区流程创建分区创建文件系统挂载mount查看挂载信息 剩余空间继续分区MBR如何划分更多的分区为什么只能有4个主分区扩展分区的引入 逻辑卷LVM是什么特点术语创建LVMVG卷组扩容PV,VG,LV的查看方式LV扩容 交换分区管理Swapswap简介查看当前交换分区设置交换分区准备分区格式化挂载验证 文件系统文件系统的作用是文件系统的类型EXT3/4文件系统 磁盘文件碎片确定系统有几个文件系统 文件链接符号链接硬链接 RAID什么是RAIDRAID的类型RAID0RAID1RAID5 RAID的分类软RAID创建示例 补充挂载和卸载问题补充电脑重启命令补充写满一个磁盘补充卸载分区 基本分区
磁盘简介
磁盘硬盘disk都是指一个东西和内存的区别是容量比较大。 磁盘的作用是存储数据。 普通用户用来存储音乐文件视频文件文本文件游戏目录。 工程师负责存储企业的数据用户账号用户头像用户视频用户信息。
磁盘分类
磁盘可以分为机械磁盘和固态磁盘 机械磁盘的构成有磁头磁臂盘片扇区磁道扇区等。 固态磁盘的组成是芯片。 固态磁盘的价格更贵一些。
linux的磁盘命名
linux查看磁盘名称的路径/dev/sda 、 /dev/sdb …
/dev : 表示设备文件目录s表示磁盘的连接方式sata串口的方式d表示磁盘a表示第一块b就表示第二块, c表示第三块… 磁盘的命名时计算机自动命名的把磁盘插到计算机上计算机自动命名。
跟过磁盘的概念可以查看https://blog.csdn.net/mantou_riji/article/details/135649323
磁盘的分区方式
磁盘的分区就是指我们系统中的 C盘D盘 这种概念。 常见的磁盘分区方式有MBR、GPT
MBR
MBR是主引导记录,是在磁盘分区时,在驱动器最前端的一段引导扇区。MBR的大小固定为512字节其中引导代码占据了前446字节而接下来的64字节被用于存储分区表最后2个字节是结束标记。分区表包含了硬盘分区的起始扇区和结束扇区以及分区类型等信息。MBR支持最大的磁盘容量是2TB在MBR中最多可以定义四个分区每个分区的起始扇区被存储在分区表中。如果硬盘上只有一个分区则分区表的四个分区项中的三个将被标记为未使用。如果希望超过四个分区需放弃主分区改为扩展分区和逻辑分区
GPT
GPT是全局唯一标识分区表。它和MBR分区的区别就是引导方式和分区结构的不同支持硬盘分区的容量不同。MBR分区直接存储数据和引导记录GPT分区的数据和引导记录是分开存储的GPT支持大于2T的硬盘可以支持128个分区
管理磁盘
虚拟机添加硬盘
关闭虚拟机添加硬盘的时候必须要关闭电源编辑虚拟机设置 虚拟机设置 添加 下一步一直点下一步就可以了 添加成功之后记得点击确认。 开机的时候会有如下显示
查看磁盘信息
法一查看磁盘的命令ll /dev/sd*是ls -l /dev/sd*的简写 eg
brw-rw----. 1 root disk 8, 0 1月 19 23:30 /dev/sda
brw-rw----. 1 root disk 8, 1 1月 19 23:30 /dev/sda1
brw-rw----. 1 root disk 8, 2 1月 19 23:30 /dev/sda2
brw-rw----. 1 root disk 8, 16 1月 19 23:30 /dev/sdb
brw-rw----. 1 root disk 8, 32 1月 19 23:30 /dev/sdc
brw-rw----. 1 root disk 8, 48 1月 19 23:30 /dev/sdd
brw-rw----. 1 root disk 8, 64 1月 19 23:30 /dev/sde
brw-rw----. 1 root disk 8, 80 1月 19 23:30 /dev/sdf
brw-rw----. 1 root disk 8, 96 1月 19 23:30 /dev/sdg开头的b 是block的简写表示是硬盘文件disk是磁盘组用来管理磁盘的从上面的信息可以看出此计算机有7块硬盘编号从a到g注意sda1和sda2是磁盘sda的分区表示的都是sda这块磁盘磁盘分区后才能存储数据
法二查看磁盘的命令lsblk
eg:
[rootlocalhost ~]# 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 5G 0 disk
sdc 8:32 0 5G 0 disk
sdd 8:48 0 5G 0 disk
sde 8:64 0 5G 0 disk
sdf 8:80 0 5G 0 disk
sdg 8:96 0 5G 0 disk
sr0 11:0 1 4.4G 0 rom /run/media/root/CentOS 7 x86_64NAME磁盘名称SIZE表示磁盘大小 上述信息 sda分区为sda1和sda2sda1的大小是1G,sda2的大小是2Gsda2再进行分卷分为centos-root 和centos-swap。
磁盘分区流程
硬盘光添加完是不能使用的还需要进行一系列的操作才能存储数据被我们使用。 需要进行如下操作分区MBR或者GPT⇒ 格式化文件系统 ⇒ 挂载mount
创建分区
这里使用MBR分区为例 MBR的分区命令就是fdisk, GPT的分区命令是gdisk其他操作是一样的
启动分区工具fdisk /dev/硬盘名称
[rootlocalhost ~]# fdisk /dev/sdb进入会话模式 1输入命令之后提示如下信息
[rootlocalhost ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。更改将停留在内存中直到您决定将更改写入磁盘。
使用写入命令前请三思。Device does not contain a recognized partition table
使用磁盘标识符 0x74b42328 创建新的 DOS 磁盘标签。命令(输入 m 获取帮助)
提示你是否开始磁盘分区此时按n表示开始分区。 2按n之后显示如下内容
命令(输入 m 获取帮助)n
Partition type:p primary (0 primary, 0 extended, 4 free)e extended
Select (default p): 选择分区类型 p主分区MBR模式最多划分4个主分区 e扩展分区 此时按p表示选择主分区。 3按p后显示如下信息
Select (default p): p
分区号 (1-4默认 1)选择当前主分区分区的分区号一般从1编号开始分区。
4输入1后显示如下信息
分区号 (1-4默认 1)1
起始 扇区 (2048-10485759默认为 2048)选择第一个分区的起始扇区的标号位置默认位置是上一个分区的结束位置如果没有上一个分区默认从2048开始。一般直接输入回车就可以了。 10485759的计算方式 已知当前硬盘的大小是5G 5GB 5120MB 5242880KB 5368709120B 一个扇区的大小固定式512B所以扇区的个数是5368709120/512 10485760 编号是从0开始的。前面四个扇区存储的是MBR分区的方式记录每个分区的大小和起始节点。
5输入回车之后显示
起始 扇区 (2048-10485759默认为 2048)
将使用默认值 2048
Last 扇区, 扇区 or size{K,M,G} (2048-10485759默认为 10485759)选择第一个分区的结束位置的扇区编号但是也可以直接写改分区需要分配多大的内存如果想要分配2个G的内存直接输入2G即可。
6输入2G后显示
Last 扇区, 扇区 or size{K,M,G} (2048-10485759默认为 10485759)2G
分区 1 已设置为 Linux 类型大小设为 2 GiB命令(输入 m 获取帮助)目前是分好区了但还没通知磁盘我们需要输入w将该分区信息写入磁盘。 此时也可以输入n继续进行分区所有空间都分配好之后再按 w进行保存。
7输入w保存分区信息自动退出分区工具
命令(输入 m 获取帮助)w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。刷新分区表 partprobe /dev/硬盘名称 按上述案例我们执行
partprobe /dev/sdb查看分区结果 输入命令之后fdisk -l /dev/硬盘名称
[rootlocalhost ~]# fdisk -l /dev/sdb磁盘 /dev/sdb5368 MB, 5368709120 字节10485760 个扇区
Units 扇区 of 1 * 512 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型dos
磁盘标识符0x74b42328设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linuxfdisk -l /dev/硬盘名称表示查看磁盘的具体信息磁盘的大小字节数扇区数以及磁盘的分区大小。
创建文件系统
磁盘分区之后不能直接使用还需要创建对应的文件系统才能使用。 文件系统的作用是给存储空间分块和编号便于数据的存储和管理。 创建文件系统的命令mkfs.ext4 /dev/硬盘分区名 等价于 mkfs -t ext4 /dev/硬盘分区名
mkfs.ext4 是 make创造、file文件、system系统、extend4扩展文件系统第四代。是文件系统的类型/dev/硬盘分区名表示的是需要创建文件系统的分区需要格式化的分区。
[rootlocalhost ~]# mkfs.ext4 /dev/sdb1
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签
OS type: Linux
块大小4096 (log2)
分块大小4096 (log2)
Stride0 blocks, Stripe width0 blocks
131072 inodes, 524288 blocks
26214 blocks (5.00%) reserved for the super user
第一个数据块0
Maximum filesystem blocks536870912
16 block groups
32768 blocks per group, 32768 fragments per group
8192 inodes per group
Superblock backups stored on blocks: 32768, 98304, 163840, 229376, 294912Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (16384 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 块大小4096 (log2) 表示每个分块的大小
挂载mount
磁盘是一个文件文件里面不能放文件夹这个时候就需要对文件进行挂载给磁盘找个文件夹 。 语法mount -t 文件系统类型 需要挂载的磁盘 挂载的目标文件夹 挂载完成之后该文件夹就相当于是新磁盘分区的空间在里面存储内容占取的是新磁盘分区的空间这就是磁盘的挂载。 磁盘分区可以挂载在任意文件夹下。 挂载就是为磁盘存储数据信息提供一个访问入口为访问磁盘提供一个门
eg
[rootlocalhost mnt]# mkdir /mnt/disk1
[rootlocalhost mnt]# mount -t ext4 /dev/sdb1 /mnt/disk1取消挂载的语法unmount 需要卸载的磁盘
注意 monut的挂载命令是临时挂载重启后是不会显示挂载信息的想要实现永久挂载需要把挂载命令放到文件/etc/fstab文件中。/etc/fstab文件存储的是所有硬盘的挂载信息
查看挂载信息
法一df -hT
[rootlocalhost mnt]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 974M 0 974M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 11M 980M 2% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.2G 12G 31% /
/dev/sda1 xfs 1014M 172M 843M 17% /boot
tmpfs tmpfs 199M 44K 198M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 ext4 2.0G 6.0M 1.8G 1% /mnt/disk1最后一行是我们刚才挂载的磁盘信息
文件系统 挂载的磁盘分区类型文件系统类型容量分区的容量已用分区已经使用的容量当前有内容是文件系统所占取的空间挂载点 磁盘分区挂载的文件
上面几行的信息显示的都是第一块磁盘的挂载信息。
法二使用mount
[rootlocalhost mnt]# mount
sysfs on /sys type sysfs (rw,nosuid,nodev,noexec,relatime,seclabel)
proc on /proc type proc (rw,nosuid,nodev,noexec,relatime)
...
(rw,nosuid,nodev,relatime,user_id0,group_id0)
/dev/sr0 on /run/media/root/CentOS 7 x86_64 type iso9660 (ro,nosuid,nodev,relatime,uid0,gid0,iocharsetutf8,dmode0500,mode0400,uhelperudisks2)
/dev/sdb1 on /mnt/disk1 type ext4 (rw,relatime,seclabel,dataordered)最后一行就是刚才设置的挂载信息。
注意没有被分区的空间仍然不可用只有已经进行分区的空间才可用。
剩余空间继续分区
继续执行一遍上面的 磁盘分区流程即可。
划分分区时p命令是查看当前磁盘的分区情况
命令(输入 m 获取帮助)p磁盘 /dev/sdb5368 MB, 5368709120 字节10485760 个扇区
Units 扇区 of 1 * 512 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型dos
磁盘标识符0x74b42328设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 4605951 204800 83 Linux
/dev/sdb3 4605952 5015551 204800 83 Linux
/dev/sdb4 5015552 10485759 2735104 83 LinuxMBR如何划分更多的分区
MBR最多划分4个分区如果还要继续划分第5个分区就会显示如下内容
命令(输入 m 获取帮助)n
If you want to create more than four partitions, you must replace a
primary partition with an extended partition first.就是如果你想要创建更多的分区就必须使用扩展分区。
扩展分区的主分区的区别
如果单纯用来存储文件主分区和扩展分区没有任何区别区别在于主分区可以用来装操作系统
为什么只能有4个主分区
MBR分区前面的512个字节是主引导记录,其中有64字节被用于存储分区表这64个字节被平均分成4份一份16个字节用来存储每个主分区的起始位置和结束位置。这64个字节能且只能分四个部分所以只能划分为4个主分区。
扩展分区的引入
扩展分区的原理是放弃一个主分区把它设置为扩展分区扩展分区可以继续进行划分划分为逻辑分区想划成多少个逻辑分区就划分成多少个逻辑分区。 注意扩展分区相当于一个容器他容纳的是逻辑分区所以无法在扩展分区存放数据只能在逻辑分区存放数据不划分逻辑分区是无法存放数据的。 操作
删除一个主分区
命令(输入 m 获取帮助)d
分区号 (1-4默认 4)4
分区 4 已删除命令(输入 m 获取帮助)创建扩展分区 常规的创建分区的流程只不过分区类型选择e扩展分区
命令(输入 m 获取帮助)n
Partition type:p primary (3 primary, 0 extended, 1 free)e extended
Select (default e): e
已选择分区 4
起始 扇区 (5015552-10485759默认为 5015552)
将使用默认值 5015552
Last 扇区, 扇区 or size{K,M,G} (5015552-10485759默认为 10485759)
将使用默认值 10485759
分区 4 已设置为 Extended 类型大小设为 2.6 GiB命令(输入 m 获取帮助)p磁盘 /dev/sdb5368 MB, 5368709120 字节10485760 个扇区
Units 扇区 of 1 * 512 512 bytes
扇区大小(逻辑/物理)512 字节 / 512 字节
I/O 大小(最小/最佳)512 字节 / 512 字节
磁盘标签类型dos
磁盘标识符0x74b42328设备 Boot Start End Blocks Id System
/dev/sdb1 2048 4196351 2097152 83 Linux
/dev/sdb2 4196352 4605951 204800 83 Linux
/dev/sdb3 4605952 5015551 204800 83 Linux
/dev/sdb4 5015552 10485759 2735104 5 Extended/dev/sdb4就是扩展分区
创建逻辑分区 直接输入n即可继续创建逻辑分区其他操作和创建主分区一样
命令(输入 m 获取帮助)n
All primary partitions are in use
添加逻辑分区 5
起始 扇区 (5017600-10485759默认为 5017600)
将使用默认值 5017600
Last 扇区, 扇区 or size{K,M,G} (5017600-10485759默认为 10485759)200M
分区 5 已设置为 Linux 类型大小设为 200 MiB命令(输入 m 获取帮助)n
All primary partitions are in use
添加逻辑分区 6
起始 扇区 (5429248-10485759默认为 5429248)
将使用默认值 5429248
Last 扇区, 扇区 or size{K,M,G} (5429248-10485759默认为 10485759)200M
分区 6 已设置为 Linux 类型大小设为 200 MiB命令(输入 m 获取帮助)N
All primary partitions are in use
添加逻辑分区 7
起始 扇区 (5840896-10485759默认为 5840896)
将使用默认值 5840896
Last 扇区, 扇区 or size{K,M,G} (5840896-10485759默认为 10485759)
将使用默认值 10485759
分区 7 已设置为 Linux 类型大小设为 2.2 GiB命令(输入 m 获取帮助)w
The partition table has been altered!Calling ioctl() to re-read partition table.
正在同步磁盘。
[rootlocalhost ~]# partprobe /dev/sdb查看分区结果 lsblk命令 逻辑分区的格式化和挂载和主分区的操作是一样的不再赘述这里以挂载sdb5为例查看一下结果
[rootlocalhost ~]# mkfs.ext4 /dev/sdb5
mke2fs 1.42.9 (28-Dec-2013)
文件系统标签
OS type: Linux
块大小1024 (log0)
分块大小1024 (log0)
Stride0 blocks, Stripe width0 blocks
51200 inodes, 204800 blocks
10240 blocks (5.00%) reserved for the super user
第一个数据块1
Maximum filesystem blocks33816576
25 block groups
8192 blocks per group, 8192 fragments per group
2048 inodes per group
Superblock backups stored on blocks: 8193, 24577, 40961, 57345, 73729Allocating group tables: 完成
正在写入inode表: 完成
Creating journal (4096 blocks): 完成
Writing superblocks and filesystem accounting information: 完成 [rootlocalhost ~]# mkdir /mnt/disk5
[rootlocalhost ~]# mount -t ext4 /dev/sdb5 /mnt/disk5
[rootlocalhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 974M 0 974M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 11M 980M 2% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.2G 12G 31% /
/dev/sda1 xfs 1014M 172M 843M 17% /boot
tmpfs tmpfs 199M 32K 199M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb5 ext4 190M 1.6M 175M 1% /mnt/disk5可以看到逻辑分区sdb5已经挂载到文件夹/mnt/disk5上。
逻辑卷LVM
物理空间是限定的当过一个文件非常大需要放在多个磁盘进行存储这种存储方式是不便于管理拷贝、删除、授权的。所以说我们不会将一个文件分储在多个磁盘上的。单靠物理磁盘是解决不了空间增长的问题的。
我们可以使用逻辑卷扩充一个磁盘分区的大小。
是什么
逻辑卷管理是一种高级的分区方式 。是管理磁盘的一种方式性质与基本磁盘无异。
特点
使用逻辑卷可以随意扩张磁盘的大小。
术语
PV物理卷VG卷组LV逻辑卷
创建LVM
准备物理磁盘 按虚拟机添加硬盘的方式添加几块物理磁盘pv 将物理磁盘转换成物理卷PV。 命令pvcreate 硬盘名
[rootlocalhost mnt]# pvcreate /dev/sdfPhysical volume /dev/sdf successfully created.vg 创建卷组VG将物理卷作为组成员创建卷组 命令vgcreate 卷组名 卷组成员
[rootlocalhost mnt]# vgcreate vg1 /dev/sdfVolume group vg1 successfully createdlv 创建逻辑卷LV从卷组中分出部分空间创建逻辑卷 命令lvcreate -L 逻辑卷大小 -n 逻辑卷名 卷组VG名 eglvcreate -L 4G -n lv1 vg1
[rootlocalhost ~]# lvcreate -L 4G -n lv1 vg1Logical volume lv1 created.创建文件系统并挂载 和磁盘分区的操作一样 创建文件系统mkfs.ext4 /dev/卷组名/逻辑卷名 创建挂载点mkdir /mnt/lv1 临时挂载开机会消失 挂载mount /dev/卷组名/逻辑卷名 挂载点
上述三条命令是
mkfs.ext4 /dev/vg1/lv1
mkdir /mnt/lv1
mount /dev/vg1/lv1 /mnt/lv1查看挂载信息
[rootlocalhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 ext4 3.9G 16M 3.6G 1% /mnt/lv1注意逻辑卷的定位是 /dev/卷组名/逻辑卷名
此时查看硬盘信息
[rootlocalhost ~]# lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT
sdf 8:80 0 5G 0 disk
└─vg1-lv1 253:2 0 4G 0 lvm /mnt/lv1VG卷组扩容
卷组的空间也可能被占满比如所有空间都分给了逻辑卷此时就需要对卷组扩容。
卷组扩容只需要新建物理卷然后把物理卷放到卷组中就可以了。
新建物理卷pvcreate /dev/硬盘名物理卷放到卷组中vgextend 卷组名 刚才创建的物理卷
卷组中物理卷的空间总和就是该卷组的空间。
实际操作
[rootlocalhost ~]# pvcreate /dev/sdgPhysical volume /dev/sdg successfully created.
[rootlocalhost ~]# vgextend vg1 /dev/sdgVolume group vg1 successfully extended这样就扩充成功了使用vgs查看物理卷
[rootlocalhost ~]# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- 19.00g 0 vg1 2 1 0 wz--n- 9.99g 5.99g原本的vg的大小是5G扩容之后是10G
PV,VG,LV的查看方式
物理卷的查看方式 pvs
[rootlocalhost ~]# pvsPV VG Fmt Attr PSize PFree /dev/sda2 centos lvm2 a-- 19.00g 0 /dev/sdf vg1 lvm2 a-- 5.00g 1020.00m/dev/sdg vg1 lvm2 a-- 5.00g 5.00gPSize物理卷的大小 PFree 物理卷的空余空间
卷组的查看方式vgs
[rootlocalhost ~]# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- 19.00g 0 vg1 2 1 0 wz--n- 9.99g 5.99gVG卷组名 PV卷组包含的物理卷个数 LV化了一个逻辑卷 VSize卷组的大小 VFree卷组的空余方式
逻辑卷卷的查看方式 lvs
LV扩容
LV的扩容本质上就是扩展逻辑卷的容量。 占满lv逻辑卷空间 dd if/dev/zero of/mnt/lv1/1.txt bs1M count5000查看剩余空间
[rootlocalhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 ext4 3.9G 3.8G 0 100% /mnt/lv1lv扩容 lv扩容需要先查看对应的卷组是否还有空间如果没有空间需要先对卷组扩容如果有空间就可以对lv直接扩容。
查看卷组是否有空间命令vgs
[rootlocalhost ~]# vgsVG #PV #LV #SN Attr VSize VFreecentos 1 2 0 wz--n- 19.00g 0 vg1 2 1 0 wz--n- 9.99g 5.99glv扩容 lv的扩容命令是lvextend -L 扩充的大小 /dev/卷组名/逻辑卷名 如lvextend -L 200M /dev/vg1/lv1
[rootlocalhost ~]# lvextend -L 200M /dev/vg1/lv1Size of logical volume vg1/lv1 changed from 4.00 GiB (1024 extents) to 4.20 GiB (1074 extents).Logical volume vg1/lv1 successfully resized.
[rootlocalhost ~]# lvextend -L 4G /dev/vg1/lv1Size of logical volume vg1/lv1 changed from 4.20 GiB (1074 extents) to 8.20 GiB (2098 extents).Logical volume vg1/lv1 successfully resized.查看扩容结果lvs
[rootlocalhost ~]# lvsLV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos -wi-ao---- 17.00g swap centos -wi-ao---- 2.00g lv1 vg1 -wi-a----- 8.20g 我们可以看到逻辑卷lv1已经扩容到8.2g了。
刷新文件系统 上述命令是为lv扩容了但是还没有同步到文件系统上
[rootlocalhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 ext4 3.9G 3.8G 0 100% /mnt/lv1可以看到逻辑卷lv1的容量仍然是4G不是扩容后的大小这是因为我们需要将逻辑卷的更新告知文件系统就需要进行FS扩容。
FS扩容resize2fs /dev/卷组名/逻辑卷
[rootlocalhost ~]# resize2fs /dev/vg1/lv1
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg1/lv1 is mounted on /mnt/lv1; on-line resizing required
old_desc_blocks 1, new_desc_blocks 2
The filesystem on /dev/vg1/lv1 is now 2148352 blocks long.[rootlocalhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/mapper/vg1-lv1 ext4 8.0G 3.8G 3.8G 51% /mnt/lv1此时就完成了LV扩容
交换分区管理Swap
swap简介
交换分区swap其实就是一个普通的分区任何一个分区都可以当做交换分区。 swap的作用‘提升内存’的容量防止内存溢出OOM 交换分区swap是一块普通的分区是硬盘上的一块存储空间当内存的空间不够用的时候可以存储在交换分区swap中swap中存储的是热点数据可以提高读取速度。 在linux中叫交换分区swap对应的在windows中叫虚拟内存
swap的大小 swap交换分区的推荐大小是内存的2倍。 但是在实际使用时
大于4GB而小于16GB内存的系统最小需要4GB交换空间;大于16GB而小于64GB内存的系统最小需要8GB交换空间;大于64GB而小于256GB内存的系统最小需要16GB交换空间。
查看当前交换分区
查看命令free -m
[rootlocalhost ~]# free -mtotal used free shared buff/cache available
Mem: 1980 821 72 19 1086 974
Swap: 2047 0 2047可以看到swap的交换分区的大小是2G。
[rootlocalhost ~]# 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]
...我们通过lsblk可以看出swap交换分区是从sda硬盘的sda2分区中并且大小是2G。
设置交换分区
准备分区
准备/dev/sde磁盘划分2G分区
fdisk /dev/sde过程略
划分分区后按t将类型设置为82
命令(输入 m 获取帮助)t
已选择分区 1
Hex 代码(输入 L 列出所有代码)82
已将分区“Linux”的类型更改为“Linux swap / Solaris”82表示的是交换分区的类型按l命令可以查看分区的所有类型
命令(输入 m 获取帮助)l0 空 24 NEC DOS 81 Minix / 旧 Linu bf Solaris 1 FAT12 27 隐藏的 NTFS Win 82 Linux 交换 / So c1 DRDOS/sec (FAT-2 XENIX root 39 Plan 9 83 Linux c4 DRDOS/sec (FAT-3 XENIX usr 3c PartitionMagic 84 OS/2 隐藏的 C: c6 DRDOS/sec (FAT-
...可以看到82表示的是交换分区swap
按w进行保存刷新分区表 partprobe /dev/sde 刷硬盘
[rootlocalhost ~]# partprobe /dev/sde
[rootlocalhost ~]# ll /dev/sde*
brw-rw----. 1 root disk 8, 64 1月 21 14:19 /dev/sde
brw-rw----. 1 root disk 8, 65 1月 21 14:19 /dev/sde1格式化
格式化交换分区mkswap /dev/硬盘分区
[rootlocalhost ~]# mkswap /dev/sde1
正在设置交换空间版本 1大小 2097148 KiB
无标签UUIDb5b89581-4449-42c3-ae23-d02c98437efbUUID是磁盘的身份证号
挂载
挂载分区swapon /dev/磁盘分区 此时 /dev/sde1就表示是交换分区但是我们还需要挂载一下。
[rootlocalhost ~]# swapon /dev/sde1取消挂载的命令是swaoff /dev/磁盘分区
验证
查看交换分区
[rootlocalhost ~]# free -mtotal used free shared buff/cache available
Mem: 1980 808 93 19 1078 987
Swap: 4095 0 4095可以看到当前的交换分区是4G有2G是刚才我们手动设置的
文件系统
划分一个磁盘基本分为三大步分区、格式化和挂载其中最重要的就是格式化格式化就是将存储空间划分成小块的过程格式化的过程是创建文件系统的过程。
文件系统的作用是
将文件准确地放到磁盘的某个位置快速定位文件在磁盘的位置的位置
文件系统的类型
windows常见的文件系统FAT16、FAT32、NTFS Linux常见的文件系统EXT3、EXT4、XFS 现在Linux常用的文件系统就是EXT3、4。
EXT3/4文件系统
类型 EXT3/4 文件系统的类型是索引文件系统 索引文件系统组成索引文件系统由文件索引值inode和存储块block组成不同的文件有自己的索引值inode同时索引值又存储着对应的块信息
inode: 记录各个文件的属性记录文件的元数据metadata。运输局是指文件的属性、大小、权限、属主属组、连接数、块数量、块编号。一个文件占用一个inode一个inode的大小是128bytes。block是存储文件的实际空间。每一个block的大小默认为4096b即4K。block是存储数据最基本的单元如果文件小于4k那么该文件就会占取一个块空间且无论该块是否还剩余空间下一个文件都是从下一个块开始存储如果文件大于4K那么该文件就会占取多个快空间。如一个5K的文件后面是一个2K的文件那么存储方式就是5k的文件占取第1、2个块2K的文件占取第三个块。superblockblock与inode的总量显示未使用和已使用的inode和block的数量。
查看文件的inode 命令ls -l -i 文件名 即ls命令添加 -i参数就可以查看文件的inode
[rootlocalhost disk1]# touch 1.txt
[rootlocalhost disk1]# ls -l -i 1.txt
12 -rw-r--r--. 1 root root 2023567360 1月 30 22:46 1.txt其中第一个数据12就是该文件的inode。
查看一个磁盘可以存储多少个文件 即查看文件的inode数量 命令df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1 131072 12 131060 1% /mnt/disk1可以看到sdb1分区有 131072 个Inode即最多可以存储131072 个文件。 eg
[rootlocalhost disk1]# rm -rf *.txt
[rootlocalhost disk1]# touch file{1..65527}
[rootlocalhost disk1]# touch file{65528..131061}
[rootlocalhost disk1]# ls -l | wc -l
131063
[rootlocalhost disk1]# df -i
文件系统 Inode 已用(I) 可用(I) 已用(I)% 挂载点
/dev/sdb1 131072 131072 0 100% /mnt/disk1ls -l | wc -l用于查询磁盘文件个数 总共有131063个文件因为里面还有个系统文件夹所以文件个数和inode个数不一样。但是此时sdb1分区已经满了再往sdb1分区写文件就写不进去了。
[rootlocalhost disk1]# touch file{131062..131070}
touch: 无法创建file131062: 设备上没有空间
touch: 无法创建file131063: 设备上没有空间
touch: 无法创建file131064: 设备上没有空间
touch: 无法创建file131065: 设备上没有空间
touch: 无法创建file131066: 设备上没有空间
touch: 无法创建file131067: 设备上没有空间
touch: 无法创建file131068: 设备上没有空间
touch: 无法创建file131069: 设备上没有空间
touch: 无法创建file131070: 设备上没有空间此时只是不能创建文件了但是文件都还是空文件。即inode满了但是block都还是空的。我们可以在文件中编写内容填充block。
[rootlocalhost disk1]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 ext4 2.0G 9.7M 1.8G 1% /mnt/disk1可以看到可用空间还有1.8G呢。 占取block空间
[rootlocalhost disk1]# dd if/dev/zero of./file1 bs1M count3000
dd: 写入./file1 出错: 设备上没有空间
记录了19270 的读入
记录了19260 的写出
2019708928字节(2.0 GB)已复制12.5855 秒160 MB/秒
[rootlocalhost disk1]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/sdb1 ext4 2.0G 1.9G 0 100% /mnt/disk1此时sdb1分区的空间已经被占满。 我们发现一个文件可以占取磁盘分区的所有空间限制文件大小的是磁盘分区的大小而不是block块4096kb的大小 此时再向file2中写内容会报错
[rootlocalhost disk1]# dd if/dev/zero of./file2 bs1k count3000
dd: 写入./file2 出错: 设备上没有空间
记录了10 的读入
记录了00 的写出
0字节(0 B)已复制0.000398932 秒0.0 kB/秒系统限制
EXT3文件系统最大16TBEXT4文件系统最大16TBXFS文件系统最大100TB
磁盘文件碎片
是指一个文件可能不会被存储在连续的空间里。如A文件占取块123B文件展示4、5C文件占取6、7。如果此时删除了文件B并且存储需要占取4个block的文件D那么文件D所占取的块就是4589。这就是文件碎片。文件碎片的产生是不可避免的不影响使用只影响读取速度
确定系统有几个文件系统
系统文件系统的数量是根据格式化的次数决定的格式化了几次就有几个文件系统。即执行了几次mkfs.ext4命令就有几个文件系统。
文件链接
文件链接就是快捷方式。
符号链接
符号链接就是软链接可以通过软链接快速访问文件。
软链接的创建方式
创建一个文件并输入内容
[rootlocalhost disk1]# echo 111 /file1
[rootlocalhost disk1]# cat /file1
111创建文件的软链接ln -s 文件的实际位置 创建软链接的位置
[rootlocalhost disk1]# ln -s /file1 /root/桌面/file11[rootlocalhost disk1]# ls -l /root/桌面/file11
lrwxrwxrwx. 1 root root 6 1月 30 23:42 /root/桌面/file11 - /file1第一个字母l表示是link快捷键。
/root/桌面/file11 就是 /file1 的软连接删除源文件软连接闪烁不可用。
软链接的特点
软链接像快捷方式可以对文件和目录做软连接。软链接记录的只是源文件的绝对路径。软链接失去源文件不可用。如果源文件删除或改名或移动位置软链接都不可用因为软连接存储的是文件的绝对路径。
硬链接
硬链接和软连接很像但是硬链接只能在一个分区里面做。 硬链接的创建方式
创建文件
[rootlocalhost disk1]# echo 222 /file2
[rootlocalhost disk1]# cat /file2
222创建文件的硬链接ln 文件的实际位置 创建软链接的位置
[rootlocalhost disk1]# ln /file2 /file2-h1
[rootlocalhost disk1]# ls -l /file2 /file2-h1
-rw-r--r--. 2 root root 4 1月 30 23:57 /file2
-rw-r--r--. 2 root root 4 1月 30 23:57 /file2-h1其中的2表示的是文件的硬链接数文件本身算一个硬链接。
硬链接的特点
硬链接只能在同分区做。创建同分区硬链接成功创建不同分区硬链接失败。硬链接只能针对文件做。不能对目录做。硬链接失去源文件仍然可用。如果源文件删除访问硬链接还是可以访问的硬链接相当于备份。
RAID
RAID的作用
容错保障数据的安全性备份数据当磁盘损坏的时候可以保证数据不丢失提升磁盘的读写速度
什么是RAID
RAID廉价磁盘冗余阵列 就是将磁盘的数据备份到廉价的磁盘上这种策略就叫做RAID。
RAID的类型
常见的RAID类型有RAID0,RAID1,RAID5。
操作系统一般做成RAID1对于重要的数据做成RAID5
RAID0
RAID0又叫条带集2块及以上磁盘如果磁盘数是n那么读写速度比原来快n倍但是不能容错。
读写速度比原来快n倍n磁盘同时读写速度自然是之前的n倍由于没有备份盘所以不容错 RAID1
RAID1俗称镜像集包含2块磁盘容量是50%读写速度一般容错。
包含2块磁盘容量是50%一块磁盘存储数据一块磁盘用来备份所以实际上只有一半的空间可以使用。容错 RAID1备份磁盘数据可以容错。
RAID5
RAID5包含3块及以上磁盘并且所有磁盘大小一样利用率(n-1)/n读写速度快。容错。
最少包含3块磁盘其中有一块磁盘是校验盘做数据备份用其余盘都是数据盘用来存储数据的所以利用率是(n-1)/n。RAID5备份的原理是三块盘其中有两块是数据盘一块是校验盘存储数据的时候将数据拆成两份两块数据盘各一份再将两份数据经过某种运算得到的结果存储在校验盘中。这样计时其中一个数据盘坏了通过逆运算还可以获取到损坏的数据盘。如果多余3块盘假设总共有n块盘那么n-1块磁盘用来存储数据数据将被分成n-1份n-1份数据的计算结果被存储在校验盘上。读写速度快是因为一个数据被存储在n-1块盘上这n-1块盘同时读写速度当然快。如果n-12速度就比原来快2倍如果n-14速度就比原来快4倍热备盘RAID5种可能会有热备盘的存在 热备盘的作用是当3块盘其中的任意一块盘损坏之后热备盘就能够及时的充当损坏的那块盘的角色。 RAID的分类
硬RAID需要RAID卡硬件有自己的CPU处理速度快。软RAID通过操作系统实现比如Windows、Linux
软RAID创建示例
使用软RAID以RAID5为例分为如下几步
准备4块硬盘 3块数据盘1块热备盘 在虚拟机上创建4块虚拟硬盘
[rootlocalhost ~]# ls /dev/sd* -l
brw-rw----. 1 root disk 8, 112 2月 2 21:35 /dev/sdh
brw-rw----. 1 root disk 8, 128 2月 2 21:35 /dev/sdi
brw-rw----. 1 root disk 8, 144 2月 2 21:35 /dev/sdj
brw-rw----. 1 root disk 8, 160 2月 2 21:35 /dev/sdk创建RAID 命令mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{h,i,j,k} -C: 创建 /dev/md0: 给RAID命名/dev/RAID的名字 -l5等级是5代表RAID5 -n3表示的是数据盘的数量 -x1表示热备盘的数量 /dev/sd{h,i,j,k}对哪些磁盘做
创建示例
[rootlocalhost ~]# mdadm -C /dev/md0 -l5 -n3 -x1 /dev/sd{h,i,j,k}
mdadm: Defaulting to version 1.2 metadata
mdadm: array /dev/md0 started.如果机器上没有mdadm命令需要手动安装一下
yum -y install mdadm格式化挂载 RAID本质上就是一块磁盘我们可以将其进行挂载。
[rootlocalhost ~]# mkfs.ext4 /dev/md0
[rootlocalhost ~]# mkdir /mnt/raid5
[rootlocalhost ~]# mount /dev/md0 /mnt/raid5/[rootlocalhost ~]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
/dev/md0 ext4 2.0G 52M 1.8G 3% /mnt/raid5只有2G空间是因为4块盘2块存数据一块校验盘一块热备盘。
查看RAID信息 mdadm -D RAID盘
[rootlocalhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Fri Feb 2 22:14:19 2024Raid Level : raid5Array Size : 2093056 (2044.00 MiB 2143.29 MB)Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)Raid Devices : 3Total Devices : 4Persistence : Superblock is persistent
...Number Major Minor RaidDevice State0 8 112 0 active sync /dev/sdh1 8 128 1 active sync /dev/sdi4 8 144 2 active sync /dev/sdj3 8 160 - spare /dev/sdk
模拟一块硬盘损坏并移除 损坏磁盘mdadm /dev/md0 -f /dev/sdh -r /dev/sdh表示强制删除h盘。
[rootlocalhost ~]# mdadm /dev/md0 -f /dev/sdh -r /dev/sdh
mdadm: set /dev/sdh faulty in /dev/md0
mdadm: hot removed /dev/sdh from /dev/md0
[rootlocalhost ~]# mdadm -D /dev/md0
/dev/md0:Version : 1.2Creation Time : Fri Feb 2 22:14:19 2024Raid Level : raid5Array Size : 2093056 (2044.00 MiB 2143.29 MB)Used Dev Size : 1046528 (1022.00 MiB 1071.64 MB)Raid Devices : 3Total Devices : 3Persistence : Superblock is persistent...Number Major Minor RaidDevice State3 8 160 0 active sync /dev/sdk1 8 128 1 active sync /dev/sdi4 8 144 2 active sync /dev/sdj
可以看到热备盘sdk现在被作为数据盘使用
补充挂载和卸载问题
如果一个分区挂载在一个文件夹上该分区卸载时候原挂载分区的内容会移到sda分区上。如果一个分区挂载在一个有内容的文件夹上那么挂载的分区的内容会覆盖文件夹的内容如果在卸载该分区文件夹的内容还是之前存储的内容。简单来说未挂载时文件夹存储的是 sda 的内容挂载后文件存储的是新分区的内容。注意挂载是临时的当计算机重启之前挂载的内容会消失也可以永久挂载但是可能会影响操作系统的启动。永久挂载的方式是将挂载命令编写在一个系统启动文件中。
补充电脑重启命令
rebootinit 6
补充写满一个磁盘 dd if/dev/zero of/mnt/disk4/1.txt bs1M count1000是一个抄写命令
dd 抄写命令if/dev/zero抄写的位置of/mnt/disk4/1.txt抄写的目标位置bs 1M 抄写的大小count抄写的次数 上述命令就是表示抄写/dev/zero中的内容到/mnt/disk4/1.txt中每次抄写1MB的大小总共抄写1000次。
eg
[rootlocalhost mnt]# dd if/dev/zero of/mnt/disk1/1.txt bs1M count2000
dd: 写入/mnt/disk1/1.txt 出错: 设备上没有空间
记录了19300 的读入
记录了19290 的写出
2023567360字节(2.0 GB)已复制8.16791 秒248 MB/秒[rootlocalhost mnt]# df -hT
文件系统 类型 容量 已用 可用 已用% 挂载点
devtmpfs devtmpfs 974M 0 974M 0% /dev
tmpfs tmpfs 991M 0 991M 0% /dev/shm
tmpfs tmpfs 991M 11M 980M 2% /run
tmpfs tmpfs 991M 0 991M 0% /sys/fs/cgroup
/dev/mapper/centos-root xfs 17G 5.2G 12G 31% /
/dev/sda1 xfs 1014M 172M 843M 17% /boot
tmpfs tmpfs 199M 28K 199M 1% /run/user/0
/dev/sr0 iso9660 4.4G 4.4G 0 100% /run/media/root/CentOS 7 x86_64
/dev/sdb1 ext4 2.0G 1.9G 0 100% /mnt/disk1可以看到磁盘分区空间已满
补充卸载分区
如果一个分区不想使用了一定要先卸载umount再删除分区。 删除分区的命令是fdisk -d