目录
磁盘管理
磁盘分区类型
查看磁盘命令
fdisk
gdisk
parted
问题
文件系统创建 mkfs
挂载文件系统 mount
永久挂载配置
卸载文件系统 umount
swap 交换分区
制作swap:
顺序
卸载
永久挂载swap的格式 /etc/fstab文件
文件系统检查和修复
ext文件系统修复工具
xfs文件系统修复工具
LVM逻辑卷
LVM三层架构
创建LV空间
顺序
创建物理卷 pvcreate
查看物理卷 pvs
创建卷组 vgcreate
查看vgs
创建逻辑卷 lvcreate
查看 lvs
挂载文件系统
删除挂载umount
LV删除
顺序
LV扩缩容 lvextend
卷组的扩容和缩容操作
LV数据迁移 pvmove
不同主机上数据迁移
逻辑卷保护机制
1.快照技术
2.备份文件
说明
实践
磁盘管理
分区:将多个物理存储空间划分为多个逻辑上的存储空间
分区互不干扰,分区后不影响另外的分区数据,不同的分区创建不同的文件系统
文件系统:文件存储的方式和组织结构,文件只能存储到文件系统上,文件系统是在分区或磁盘上创建的
文件系统类型:XFS、SWAP、EXT4
挂载:文件系统挂载到某个目录----挂载点 ,挂载点访问的文件系统入口
磁盘分区类型
MBR:传统老牌分区,逐渐被GPT替代
MBR分区方案特点:
1.分区数量限制:最多支持4个主分区(其实是3个主分区+1个逻辑分区)
2.分区类型划分:主分区、扩展分区、逻辑分区(逻辑驱动器,逻辑分区是在扩展分区里面划分的)
3.单个分区大小不能超过2TB
4.如果系统盘采用MBR分区方案,那么在磁盘的前446字节是它的引导程序
5.磁盘的前512字节是特殊的存在,前446字节是给引导程序代码留下的,后64字节是分区表信息,最后2字节是保留部分
GPT:相对于MBR是较新的
1.分区数量限制是128个分区
2.没有分区类型划分,你可以理解为所有的分区全部都是主分区
3.单个分区大小可以超过2TB
4.分区表在磁盘的头部和尾部都有,所以GPT有备份
操作系统的系统盘来说,Linux系统中一定会划分/分区和/boot分区,那么它是采用哪种分区方案?
和系统的启动模式相关:
选择的是Legacy BIOS,默认采用的分区方案是MBR
Legacy BIOS模式的话,只需要划分一个/boot分区
选择的是UEFI BIOS的话,默认采用的分区方案是GPT
UEFI BIOS模式的话,需要划分/boot分区和/boot/efi分区
生产环境上怎么使用?
能用GPT就使用GPT,不能使用GPT再使用MBR
查看磁盘命令
lsblk 树状型
fuser 查看文件系统进程
fuser -km 结束文件系统进程
fdisk
进入磁盘,进行分区工作,交互式分区,没保存,不生效,重启后消失
fdisk -l d delete a partition:删除一个分区 n add a new partition:创建一个分区 p print the partition table:打印分区表信息,打印分区 t change a partition type:修改分区类型 ID type m print this menu:查看有哪些命令 w write table to disk and exit:保存操作并且退出 q quit without saving changes:不保存直接退出 g create a new empty GPT partition table:指定GPT分区方案 o create a new empty DOS partition table:指定MBR分区方案针对于/dev/sda磁盘,使用MBR分区方案,划分2个主分区,大小分别是1G和5G
[root@router ~]# fdisk /dev/sda Welcome to fdisk (util-linux 2.37.4). Changes will remain in memory only, until you decide to write them. Be careful before using the write command. Device does not contain a recognized partition table. Created a new DOS disklabel with disk identifier 0xbc9d6813. # 采用MBR分区方案 Command (m for help): n #创建一个分区 Partition type p primary (0 primary, 0 extended, 4 free) e extended (container for logical partitions) Select (default p): # 直接回车,指定的是主分区 Using default response p. Partition number (1-4, default 1): # 指定分区号 First sector (2048-41943039, default 2048): # 开始扇区,一律不要写 Last sector, +/-sectors or +/-size{K,M,G,T,P} (2048-41943039, default 41943039): +1G # 结束扇区,划分的分区大小 Created a new partition 1 of type 'Linux' and of size 1 GiB. Command (m for help): n Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): Using default response p. Partition number (2-4, default 2): First sector (2099200-41943039, default 2099200): Last sector, +/-sectors or +/-size{K,M,G,T,P} (2099200-41943039, default 41943039): +5G Created a new partition 2 of type 'Linux' and of size 5 GiB.gdisk
gdisk工具的命令和fdisk一样
以前它是专门划分GPT分区的,现在fdisk也会划分了
parted
fdisk和gdisk属于交互式分区工具,只要没有保存,都不会生效
支持交互,非交互,执行立即生效
#交互式分区 (parted) mkpart Partition type? primary/extended? primary File system type? [ext2]? Start? 1M End? 1024M (parted) print Model: VMware, VMware Virtual S (scsi) Disk /dev/sda: 21.5GB Sector size (logical/physical): 512B/512B Partition Table: msdos Disk Flags: Number Start End Size Type File system Flags 1 1049kB 1024MB 1023MB primary ext2#非交互式 [root@router ~]# parted /dev/sda mklabel msdos mkpart primary ext2 1MiB 1024MiB问题
[root@router ~]# parted /dev/sda mklabel msdos mkpart primary ext2 1024MiB 2048MiB Warning: The existing disk label on /dev/sda will be destroyed and all data on this disk will be lost. Do you want to continue? Yes/No? Yes Information: You may need to update /etc/fstab.出现这种问题,是因为磁盘已经有了分区方案,你这里又指定一次,如果输入了Yes那么会直接覆盖。
如果出现了,把mklabel msdos去掉就可以了,你别指定分区方案
文件系统创建 mkfs
mkfs -t 文件系统类型 设备路径
mkfs.文件系统类型 设备路径
挂载文件系统 mount
mount -o
-a:将fstab文件中没有挂载的条目实现自动挂载 -r:只读挂载 -w:读写挂载 -t:指定文件系统类型 -L:基于标签挂载 标签就相当于文件系统的名字 不同的文件系统打标签命令不一样: xfs: xfs_admin -L 'rhcsa' /dev/sda1 xfs_admin -L '--' /dev/sda1 ext: e2label /dev/sda2 'rhce' e2label /dev/sda2 '' -U:基于UUID挂载(文件系统的UUID) -o:支持额外的挂载选项 remount:重新挂载 rw:读写挂载 suid:文件系统是否支持suid权限 exec:文件系统是否支持可执行文件 async:异步模式,先写内存再同步刷到磁盘 sync:同步模式,直接写到磁盘中 atime/noatime:是否更新atime,包含目录和文件 auto/noauto:是否支持自动挂载 mount -a exec/noexec:是否支持文件系统上的可执行文件运行 dev/nodev:是否支持在此文件系统上使用设备文件 suid/nosuid:是否支持suid的权限 remount:重新挂载 ro/rw:只读或者读写挂载 user/nouser:是否允许普通用户挂载此设备,但是你还要将文件系统条目写到/etc/fstab文件中,普通用户才可以挂载(鸡肋,因为挂载都是root操作的) defaults:默认挂载选项,是rw, suid, dev, exec, auto, nouser, and async的组合永久挂载配置
/dev/sda1 /data1 ext4 defaults,rw,nouser,exec 0 0 /dev/sda2 /data2 xfs defaults 0 0卸载文件系统 umount
umount 挂载点/文件系统
swap 交换分区
把磁盘空间当作内存使用,运行操作系统运行更多的软件
制作swap:
1. 分区:常见的
2. 磁盘
3. 文件:特殊情况,比如系统没有多余的磁盘和分区,但是某个程序运行又必须要swap,这个时候可以创建一个指定大小的文件,将其格式化为swap进行使用
[root@router ~]# swapon -s Filename Type Size Used Priority /dev/nvme0n1p2 partition 2097148 0 -2顺序
1. 将分区或者文件或者磁盘通过mkfs命令格式化为swap文件系统
2. 通过mount命令将其实现挂载
3. 如果要永久挂载swap的话,需要写入到/etc/fstab文件
[root@router ~]# mkswap /dev/sda3 Setting up swapspace version 1, size = 3 GiB (3221221376 bytes) no label, UUID=5189fcb3-7d3f-4529-8c0c-b2d3dcfd510e [root@router ~]# swapon -s Filename Type Size Used Priority /dev/nvme0n1p2 partition 2097148 0 -2 /dev/sda3 partition 3145724 0 -3 [root@router ~]# free -m total used free shared buff/cache available Mem: 3872 1427 2013 14 671 2444 Swap: 5119 0 5119卸载
如果swap空间已经使用了,卸载swap的话,里面的数据不会丢失的,它会重新返回到内存空间中
swapoff /dev/sda3永久挂载swap的格式 /etc/fstab文件
/dev/sda3 swap swap defaults 0 0文件系统检查和修复
文件系统创建之后,文件系统本身也具备元数据和数据
元数据:文件系统的类型,inode数量,block数量,单个block的大小...
数据
superblock 超级块 + block 块
如果今天文件系统的超级块故障了,那么就无法识别文件系统类型... 你就无法实现挂载上
backup superblock 备份的超级块,目的是为了恢复超级块的数据
如果文件系统的超级块故障了,则文件系统无法挂载,但是数据不会丢失哦
ext文件系统修复工具
fsck 文件系统 e2fsck 文件系统xfs文件系统修复工具
xfs_repair 文件系统LVM逻辑卷
LVM是 Logical Volume Manager英文缩写,中文是 逻辑卷管理器。它是linux系统中磁盘管理工具,其思想是将物理磁盘和分区进行虚拟化,创建虚拟的磁盘空间,从虚拟的磁盘空间中按需分配,使用起来更灵活,更易于管理。
LVM三层架构
PV:Physical Volume 物理卷
初始物理存储设备,创建物理卷才能添加LVM卷组中
VG:Volume Group 卷组
将多个物理卷合成一个统一的存储结构,多个物理磁盘虚拟成一个虚拟盘,可以灵活对虚拟盘进行划分,分成多个逻辑卷
LV:Logical Volume 逻辑卷
对卷组进行划分,分配出来的虚拟灵活空间,格式化和挂载,提供给操作系统使用
LE 逻辑卷最小的寻址单元,默认和PE是1对1关系
PE 组成卷组的单元,默认单个PE大小4MB,再创建组指定PE大小
创建LV空间
顺序
- 将磁盘或分区等创建PV物理卷
- 将多个PV物理卷加入到一个VG卷组中
- 将VG卷组里面划分多个LV逻辑卷
- 对LV逻辑卷格式化文件系统
- 挂载文件系统
将/dev/sdb、/dev/sdc、/dev/sdd三个盘制作为PV物理卷,全部加入到vgdemo这个卷组中,卷组单个PE大小是4MB,在卷组上创建2个逻辑卷,分别是大小为5G的lv1和大小为10G的lv2,将lv1格式化为xfs,将lv2格式化为ext4,实现永久挂载
创建物理卷 pvcreate
root@router ~]# pvcreate /dev/sdb /dev/sdc /dev/sdd Physical volume "/dev/sdb" successfully created. Physical volume "/dev/sdc" successfully created. Physical volume "/dev/sdd" successfully created. Creating devices file /etc/lvm/devices/system.devices查看物理卷 pvs
pvdisplay 以详细格式展示物理卷的完整属性
创建卷组 vgcreate
[root@router ~]# vgcreate vgdemo /dev/sdb /dev/sdc /dev/sdd Volume group "vgdemo" successfully created -s 选项指定单个PE的大小查看vgs
cgdisplay 以详细格式展示物理卷的完整属性
创建逻辑卷 lvcreate
[root@router ~]# lvcreate -n lv1 -L 5G vgdemo Logical volume "lv1" created. [root@router ~]# lvcreate -n lv2 -l 2560 vgdemo Logical volume "lv2" created. -L 直接指定lv大小 -l 指定PE数量查看 lvs
lvdisplay 以详细格式展示物理卷的完整属性
创建文件系统
注意:文件系统类型:XFS、SWAP、EXT4
[root@router ~]# mkfs.xfs /dev/vgdemo/lv1 [root@router ~]# mkfs.ext4 /dev/vgdemo/lv2挂载文件系统
挂载mount
删除挂载umount
[root@router ~]# mkdir /lv1 [root@router ~]# mkdir /lv2 [root@router ~]# mount /dev/vgdemo/lv1 /lv1 [root@router ~]# mount /dev/vgdemo/lv2 /lv2 [root@router ~]# df -Th | grep lv /dev/mapper/vgdemo-lv1 xfs 5.0G 68M 4.9G 2% /lv1 /dev/mapper/vgdemo-lv2 ext4 9.8G 24K 9.3G 1% /lv2LV删除
顺序
1.如果有文件系统挂载一定要先卸载
2. 删除LV逻辑卷 lvremove
3. 删除VG卷组 vgremove
4. 删除PV物理卷 pvremove
[root@router ~]# umount /lv1 [root@router ~]# umount /lv2 [root@router ~]# lvremove /dev/vgdemo/lv1 //逻辑卷卸载 Do you really want to remove active logical volume vgdemo/lv1? [y/n]: y Logical volume "lv1" successfully removed. [root@router ~]# lvremove /dev/vgdemo/lv2 /dev/vgdemo/lv3 -y Logical volume "lv2" successfully removed. Logical volume "lv3" successfully removed. [root@router ~]# vgremove vgdemo //卷组卸载 Volume group "vgdemo" successfully removed [root@router ~]# pvremove /dev/sdb /dev/sdc /dev/sdd //物理卷卸载 Labels on physical volume "/dev/sdb" successfully wiped. Labels on physical volume "/dev/sdc" successfully wiped. Labels on physical volume "/dev/sdd" successfully wiped.LV扩缩容 lvextend
为了存储更多的数据,需要对已有的LV进行扩容,扩容LV之后,还需要拉升文件系统的大小
逻辑卷扩容,只要所在的卷组空间足够就可以直接扩;
卷组空间不够,需要先给卷组扩容,再给逻辑卷扩容。
所以逻辑卷扩容分为俩个场景:
1. 卷组空间足够
2. 卷组空间不够
[root@router ~]# lvextend -L 10G /dev/vg0/lv1 Size of logical volume vg0/lv1 changed from 5.00 GiB (1280 extents) to 10.00 GiB (2560 extents). Logical volume vg0/lv1 successfully resized.不同的文件系统拉升命令不一样:
xfs:xfs_growfs
ext:resize2fs
卷组的扩容和缩容操作
vgextend 卷组名 物理卷
vgreduce 卷组名 物理卷
LV数据迁移 pvmove
[root@router ~]# pvmove /dev/sdb /dev/sda4不同主机上数据迁移
a 禁用卷组
b 将整个卷组信息导出来
c 从服务器设备上拔出来插入其他服务器设备上
d 导入卷组信息
e 扫描卷组和逻辑卷
[root@router ~]# vgchange -an vg0 0 logical volume(s) in volume group "vg0" now active [root@router ~]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert lv1 vg0 -wi------- 15.00g lv2 vg0 -wi------- 10.00g [root@router ~]# lvscan inactive '/dev/vg0/lv1' [15.00 GiB] inherit inactive '/dev/vg0/lv2' [10.00 GiB] inherit逻辑卷保护机制
1.快照技术
COW:写时复制,写前复制(LVM的快照是基于COW的)
lvm的cow快照其实是一种特殊的lv逻辑卷,类型是snap类型
#创建COW快照 [root@router ~]# lvcreate -n lv1-snap -s -L 64M /dev/vg0/lv1 #还原快照 [root@router ~]# lvconvert --merge /dev/vg0/lv1-snap Merging of volume vg0/lv1-snap started. vg0/lv1: Merged: 100.00%ROW:写时重定向(虚拟机的快照)
2.备份文件
我们对卷组的所有的操作,都会记录到一个文件中,对卷组上面的逻辑卷操作也是一样的
/etc/lvm/archive vgcfgrestore -l vg0 vgcfgrestore -f /etc/lvm/archive/vg0_00017-871139501.vg/vg0_00017-871139501.vg vg0说明
n创建分区
p选择创建分区
1分区编号
2048起始扇区
设置分区大小 +5G
w保存并退出
e扩展分区 分区时不指定分区大小,直接默认
实践
1.调整逻辑卷大小
将名为zahngsan的逻辑卷调整512M,确保文件系统的内容保持不变
调整后的逻辑卷大小范围498M~511M的范围内都可以接受
vextend -r -L 512 /dev/exam/zhangsan2.swap交换分区配置
向serverb.lab.example.com添加一个额外的交换分区512MiB。
交换分区应在系统启动时自动挂载。
不要删除或以任何方式改动系统上的任何现有交换分区
创建分区: [root@serverb ~]# fdisk /dev/vdb 分一个512M的分区,类型设置为82 swap Command (m for help): n (新建分区) Partition type p primary (1 primary, 0 extended, 3 free) e extended (container for logical partitions) Select (default p): 直接回车 创建主分区 Using default response p. Partition number (2-4, default 2): 直接回车设置分区号为2 First sector (1173504-10485759, default 1173504): Last sector, +/-sectors or +/-size{K,M,G,T,P} (1173504-10485759, default 10485759): +512M Created a new partition 2 of type 'Linux' and of size 512 MiB.(+512M设置分区大小) Command (m for help): t 转换分区类型 Partition number (1,2, default 2): 直接回车默认转换最后一个分区即第二个分区 Hex code or alias (type L to list all): 82 设置swap类型为82 Changed type of partition 'Linux' to 'Linux swap / Solaris'. Command (m for help): p 查看分区情况 Disk /dev/vdb: 5 GiB, 5368709120 bytes, 10485760 sectors Units: sectors of 1 * 512 = 512 bytes Sector size (logical/physical): 512 bytes / 512 bytes I/O size (minimum/optimal): 512 bytes / 512 bytes Disklabel type: dos Disk identifier: 0x870a45f4 Device Boot Start End Sectors Size Id Type /dev/vdb1 2048 1173503 1171456 572M 83 Linux /dev/vdb2 1173504 2222079 1048576 512M 82 Linux swap / Solaris Command (m for help): w 保存并退出 格式化为swap并配置开机自动挂载: [root@serverb ~]# mkswap /dev/vdb2 [root@serverb ~]# echo '/dev/vdb2 swap swap defaults 0 0' >> /etc/fstab [root@serverb ~]# swapon -a 验证效果: [root@serverb ~]# free -m total used free shared buff/cache available Mem: 1774 194 1376 12 204 1423 Swap: 511 0 511 注意: swap为511M 是符合题目需求的,swap文件系统自身有一定占用3.启动VMmare,在需要打开的虚拟机编辑中重新添加一块磁盘,实践磁盘管理命令
删除分区二种情况
挂载好了的分区
没有挂载的分区使用fdisk /dev/nvme0n1进入分区,p查看分区信息,
输入d
输入1
......
先使用lsblk查看磁盘信息
Fdisk /dev/nvme0n1 //进入磁盘分区中进行分区
n创建分区
根据提示选择p或者e
e是扩展分区,p是创建普通的分区
重复步骤
n创建分区
根据提示选择p或者e
e是扩展分区,p是创建普通的分区
创建扩展分区e的时候不用设置都是G,自动默认进行下一步
扩展分区设置好后,再次分的区是逻辑分区,根据命令的提示输入5后,再设设置+1G
红色提示表示以及没有可用的分区了
w保存并退出
先格式化再挂载
格式化命令:mkfs
EXT4是文件的系统类型
Mount 临时挂载
挂载的源路径+挂载到哪里的路径
用lsblk查看挂载成没成功
--森bright