诱因:服务器原来装的EXSI,现在要重装一个ubuntu server,出现了下面一些问题,在此记录一下。
 
目录
- 1、过程中出现的问题(2024.5.26)
- 1.1 问题1:如何磨掉原来的ESXI?
- 1.2 问题2:为什么ubuntu安装在14TB的磁盘中,reboot后无法正常进入系统?
- 补RAID知识
 
- 1.3 问题3:安装ubuntu时,558G和14T的硬盘,操作系统应该选择安装在哪个硬盘?
- 1.4 问题4:如何在安装ubuntu的时候,就充分利用好558G的磁盘空间?而不是进入系统之后,再进行扩容。
- ==1.5 问题5:进入ubuntu后,如何用上14TB的硬盘空间?==
- ==1.6 问题6:如果`/`是100G,那么如何进入ubuntu后,扩充成558G呢?【未实践】==
- 1.7 问题7:直接挂载分区 和 挂载逻辑卷 有什么区别呢?
- 1.8 问题8:为什么ubuntu,会出现`/dev/mapper/ubuntu--vg--1-ubuntu--lv`但是没有`/dev/sda3/ubuntu--vg--1-ubuntu--lv`呢?
- 1.9 问题9:为什么是`/dev/mapper/`呢?
- 1.10 常用磁盘命令总结
 
1、过程中出现的问题(2024.5.26)
1.1 问题1:如何磨掉原来的ESXI?
服务器的磁盘是通过raid组装过的,组装信息如下:

以前的ESXI是安装在第一个558G的虚拟驱动里面的。
所以磨掉ESXI的方法:
1)重装操作系统的时候,安装在558G的磁盘中(原来的ESXI就装在这个磁盘里面得)。

2)重组raid, 初始化时,选择Initialize。之后再安装操作系统

1.2 问题2:为什么ubuntu安装在14TB的磁盘中,reboot后无法正常进入系统?
可能是因为组raid时,Drive Group:0 (558GB,RAID 1类型)在 Drive Group:1(14TB,RAID 5类型)上面,如果要引导启动的时候,那么会优先从Drive Group:0从引导。
也可能是因为Drive Group:0 使用的是非SATA,而Drive Group:1全部使用的是SATA类型的磁盘
补RAID知识
重要参考:RAID磁盘阵列是什么意思?RAID 0、1、5都有什么不同?
RAID的出现是为了保证安全性。RAID也可以当作是把单个的磁盘合并在一起进行使用。
RAID 0:把文件拆开,然后同时、分别存到三块硬盘上。RAID 0是性能最好的,但因为是把文件拆分存储,一旦一个硬盘出问题,整个文件就不能用了。【性能最高,最不安全】
RAID 1:相对于RAID 0,提升了安全性。往第1块磁盘写数据,还会复制一份到第二块硬盘。所以虽然安全性最高,但是容量只会是两个相同大小磁盘组起来后的一半。(至少需要2块硬盘)【最安全,但性能最低】
RAID 5:兼顾性能和安全性。如果某一个块硬盘损坏了,那么可以通过其他硬盘的检验信息来恢复。所以RAID 5又叫做分布式校验盘。RAID 5最多允许坏一块硬盘,坏2块硬盘就不行了。(至少需要3块硬盘)
RAID 10:是RAID 1 和 RAID 0的组合,至少需要4块硬盘。先组成2个RAID 1,再组成2个RAID 0。
1.3 问题3:安装ubuntu时,558G和14T的硬盘,操作系统应该选择安装在哪个硬盘?
我们先选择把ubuntu安装在14TB的硬盘里,发生的效果是:reboot后,无法正常开机。原因猜测见1.2
后来我们选择把ubuntu安装在558G的硬盘中,这样就可以正常进入系统了。
1.4 问题4:如何在安装ubuntu的时候,就充分利用好558G的磁盘空间?而不是进入系统之后,再进行扩容。
关键在于这个界面:

如果按照这个默认配置,那么分配给根(/)的磁盘大小只有100GB。我们需要把这个558G的硬盘空间充分利用,接下来就是操作步骤:
Step1:删掉[/ 100G new ext4 new LVM logical volume](通过Unmount)
Step2:然后删掉ubuntu-lv new to be formatted as ext4, not mounted(LVM logical volume ubuntu-lv)
Step3:然后在free space中Create Logical Volume(Size 填满,文件格式ext4,挂载在/)
最后可以看到[/ 556.402G new ext4 new LVM logical volume]
1.5 问题5:进入ubuntu后,如何用上14TB的硬盘空间?
重要参考:linux下使用fdisk进行磁盘分区详解
Step1:设置磁盘分区(把整个磁盘放在一个分区)
- lsblk命令查看现有磁盘分区(通过- fdisk -l命令也可以查看,但- lsblk命令更直观)
- fdisk /dev/sdb对某个硬盘进行分区(分区后,会出现sdb1, sdb2等等)- m#查看帮助
- p#打印分区表
- d#删除已有分区(之前通过- lsblk命令查看到的分区- sdb1
- n#新建分区- 上面参考博客的改动是:/dev/sdb1为主分区(p),/dev/sdb2为扩展分区(e),扩展分区又包含两个逻辑分区(l)/dev/sdb5和/dev/sdb6
- First sector一般都是默认回车;Last sector如果回车默认,那么会默认分配剩余空间。如果不用完,那么可以写+500M/+ 24G
 
- 上面参考博客的改动是:
- w#写入磁盘分区表
 
Step2:格式化分区(一般linux文件格式是ext4)
- mkfs.ext4 /dev/sdb1#把新建的分区格式化为ext4格式
Step3:把分区挂载到某个目录
- mkdir /sdb1#创建一个目录
- mount /dev/sdb1 /sdb1# 把分区挂载到某个目录
Step4:设置开机自动挂载分区
- 把挂载信息写入/etc/fstab文件中- /dev/sdb1 /sdb ext4 defaults,noatime 0 0
 
- reboot后,通过- df -hT命令查看挂载成功与否。- df -hT查看的,全部都是挂载成功的分区/逻辑卷信息,而- lsblk,命令可以查看全部的硬盘空间(包括没有设置分区的等等)。
方法2:把分区(part)变为物理卷(PV)再变为卷组(VG)组再变为逻辑卷(LV),再格式化文件系统,最后挂载使用
1.6 问题6:如果/是100G,那么如何进入ubuntu后,扩充成558G呢?【未实践】
 
难点:目前的根目录已经有数据了,如果扩容的话, 那么可能会涉及到数据搬移?
回答:通过逻辑卷操作
重要参考:
1、Linux磁盘分区详解(新建分区,现有分区扩容,分区减容)
-  这篇参考文章的第三节“三、服务器新建磁盘空间”,是新加入一块硬盘后,如何把硬盘的空间通过卷的形式用起来。(最终还是将 逻辑卷挂载到某个目录)- 新建立的卷组的空间,可以分配给现有逻辑卷,不一定要在新建立的卷组上面新建逻辑卷。
 
-  这篇参考文章的第五节“五、分区扩容”,就是给 /u01目录对应的逻辑卷/dev/mapper/vgdata-lvdata02扩容【与问题6相关】- /dev/mapper:和本文下面的问题8有关。
- /dev/mapper/vgdata-lvdata02是卷组- vgdata下面的逻辑卷- lvdata02。最终挂载目录的时候,目录和逻辑卷对应。
 
-  fdisk -l查看磁盘下面的分区
-  2024.5.26用到的操作就是到 分区就结束了,这篇文章还提出了物理卷-PV、逻辑卷LVM等术语
-   -  物理分区(PP) /dev/sdb1、/dev/sdb2-> 物理卷(PV):/dev/sdb1、/dev/sdb2[root@CentOS7-0003 /]$ pvcreate /dev/sdb1Physical volume "/dev/sdb1" successfully created. [root@CentOS7-0003 /]$ pvcreate /dev/sdb2Physical volume "/dev/sdb2" successfully created. [root@CentOS7-0003 /]$ pvs #pvs、pvdisplay、pvscan 这三个命令都可以查看系统中有哪些物理卷PV PV VG Fmt Attr PSize PFree /dev/sda2 centos_centos7-0003 lvm2 a-- <19.00g 0 /dev/sdb1 lvm2 --- 5.00g 5.00g/dev/sdb2 lvm2 --- <5.00g <5.00g # 感觉文件格式是lvm2就是物理卷,如果直接使用的话,那么就是ext4查看物理卷: pvs、pvdisplay、pvscan
-  物理卷(PV) /dev/sdb1、/dev/sdb2-> 卷组(VG):vgdata[root@CentOS7-0003 /]$ vgcreate vgdata /dev/sdb1 #创建卷组vgdata,并将/dev/sdb1添加到卷组Volume group "vgdata" successfully created[root@CentOS7-0003 /]$ vgextend vgdata /dev/sdb2 #将/dev/sdb2添加到vgdata卷组Volume group "vgdata" successfully extended [root@CentOS7-0003 /]$ vgs #查看卷组信息VG #PV #LV #SN Attr VSize VFreecentos_centos7-0003 1 2 0 wz--n- <19.00g 0 vgdata 2 0 0 wz--n- 9.99g 9.99g # 2个PV(物理卷) 0个LV(逻辑卷)查看卷组: vgs
-  卷组(VG) vgdata-> 逻辑卷(LV)lvdata01、lvdata02[root@CentOS7-0003 /]$ lvcreate -L 4G -n lvdata01 vgdata #将vgdata上4G分配给新建的逻辑卷lvdata01Logical volume "lvdata01" created.[root@CentOS7-0003 /]$ lvcreate -l 100%FREE -n lvdata02 vgdata #将vgdata上剩余空间分配给新建的逻辑卷lvdata02Logical volume "lvdata02" created. [root@CentOS7-0003 /]$ lvs #查看逻辑卷信息LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convertroot centos_centos7-0003 -wi-ao---- <17.00g swap centos_centos7-0003 -wi-ao---- 2.00g lvdata01 vgdata -wi-a----- 4.00g lvdata02 vgdata -wi-a----- 5.99g [root@CentOS7-0003 /]$ lvextend -L +10G /dev/centos_centos7-0003/root #分配给现有的逻辑卷使用命令,这是哪个卷组的空间呢?应该是/centos_centos7-0003卷组的吧查看逻辑卷: lvs
 
-  
2、解决 Linux /dev/mapper/ubuntu–vg-ubuntu–lv 磁盘空间不足的问题【与问题6更相关一些】
-  df -h查看文件系统磁盘空间的使用情况
-  查看卷组的信息 vgdisplay(卷组的概念在上面有解释)- 发现 Free PE / Size还有空间
 
- 发现 
-  通过 lvresize -l +100%FREE /dev/mapper/ubuntu--vg-ubuntu--lv命令进行磁盘扩容(使用100%的FREE PE)
-  刷新逻辑卷 /dev/mapper/ubuntu--vg-ubuntu--lv- 执行命令:resize2fs /dev/mapper/ubuntu--vg-ubuntu--lv
 
- 执行命令:
-  再查看空间: df -h- 此时Free PE / Size已经用完了
 
- 此时
1.7 问题7:直接挂载分区 和 挂载逻辑卷 有什么区别呢?
参考:LVM逻辑卷的配置和挂载使用
挂载逻辑卷的好处(LVM):
①硬盘的多个分区由LVM统一为卷组管理,可以方便的加入或移走分区以扩大或减小卷组的可用容量,充分利用硬盘空间
②用户/用户组的空间建立在LVM上,可以随时按要求增大,或根据使用情况对各逻辑卷进行调整。当系统空间不足而加入新的硬盘时,不必把用户的数据从原硬盘迁移到新硬盘,而只须把新的分区加入卷组并扩充逻辑卷即可。同样,使用LVM可以在不停服务的情况下。把用户数据从旧硬盘转移到新硬盘空间中去
如果直接挂载物理分区的话,那么可能要增加容量的时候,可能就要涉及搬移数据。
ChatGPT:
直接挂载分区(Directly Mounting a Partition)和挂载逻辑卷(Mounting a Logical Volume)在Linux系统中是两种不同的磁盘管理方式,它们在概念和实现上有所区别。
- 直接挂载分区:
- 在直接挂载分区的情况下,你直接对物理硬盘上的某个分区进行格式化,然后将其挂载到文件系统中。
- 这种方式下,分区的大小是固定的,不能在线调整。
- 直接挂载分区通常用于简单的文件存储需求,或者当不需要动态调整分区大小时。
- 挂载逻辑卷:
- 逻辑卷(Logical Volume, LV)是建立在物理卷(Physical Volume, PV)之上的虚拟存储卷。
- 逻辑卷可以跨越多个物理卷,这意味着可以在多个物理硬盘上创建一个逻辑卷。
- 逻辑卷的大小可以在线调整(通过扩展或缩小PE,即物理扩展),这使得逻辑卷非常灵活,可以满足不断变化的存储需求。
- 挂载逻辑卷通常与逻辑卷管理(LVM)一起使用,LVM是一种允许用户在不停止服务的情况下调整分区大小的技术。
总结区别:
- 灵活性:逻辑卷比直接挂载分区更灵活,因为它们可以跨越多个物理卷,并且可以在线调整大小。
- 管理:逻辑卷通过LVM管理,提供了更复杂的存储管理功能,如快照、克隆和卷组管理。
- 性能:直接挂载分区通常比逻辑卷更快,因为它们不涉及额外的虚拟化层。
- 用途:直接挂载分区适用于简单的存储需求,而逻辑卷适用于需要高度灵活性和动态调整大小的复杂存储需求。
1.8 问题8:为什么ubuntu,会出现/dev/mapper/ubuntu--vg--1-ubuntu--lv但是没有/dev/sda3/ubuntu--vg--1-ubuntu--lv呢?
 
通过lsblk命令查看所有硬盘信息:
root@root:~# lsblk
NAME                         MAJ:MIN RM  SIZE RO TYPE MOUNTPOINTS
loop0                          7:0    0   62M  1 loop 
loop1                          7:1    0 79.9M  1 loop /snap/lxd/22923
loop2                          7:2    0 63.9M  1 loop /snap/core20/2318
loop3                          7:3    0   87M  1 loop /snap/lxd/28373
loop4                          7:4    0 38.7M  1 loop /snap/snapd/21465
loop5                          7:5    0 63.9M  1 loop /snap/core20/2264
loop6                          7:6    0 38.8M  1 loop /snap/snapd/21759
sda                            8:0    0  128G  0 disk 
├─sda1                         8:1    0    1M  0 part 
├─sda2                         8:2    0    2G  0 part /boot
└─sda3                         8:3    0  126G  0 part └─ubuntu--vg--1-ubuntu--lv 253:0    0   63G  0 lvm  /
sr0                           11:0    1  1.8G  0 rom  
可以发现ubuntu--vg--1-ubuntu--lv是在分区sda3下面的
通过pvs命令查看系统中有哪些物理卷PV:
root@root:~# pvsPV         VG          Fmt  Attr PSize    PFree /dev/sda3  ubuntu-vg-1 lvm2 a--  <126.00g 63.00g
通过df -hT命令查看系统中有哪些可用的挂载:
root@root:~# df -hT
Filesystem                           Type     Size  Used Avail Use% Mounted on
tmpfs                                tmpfs    794M  1.5M  793M   1% /run
/dev/mapper/ubuntu--vg--1-ubuntu--lv ext4      62G   23G   36G  40% /
tmpfs                                tmpfs    3.9G   12K  3.9G   1% /dev/shm
tmpfs                                tmpfs    5.0M     0  5.0M   0% /run/lock
/dev/sda2                            ext4     2.0G  251M  1.6G  14% /boot
tmpfs                                tmpfs    794M   24K  794M   1% /run/user/0
overlay                              overlay   62G   23G   36G  40% /var/lib/docker/overlay2/b0f34b35f2ace032537f604f9504f5ee87aac231c07e4dda62d2bdaada287206/merged
overlay                              overlay   62G   23G   36G  40% /var/lib/docker/overlay2/74f9dddf9bafe92b297116ce4ecad6b579eb2ca20fc58f9d9c83bd1e233c6b0b/merged
为什么是/dev/mapper/ubuntu--vg--1-ubuntu--lv而不是/dev/sda3/ubuntu--vg--1-ubuntu--lv呢?
- 可能因为,/sda3并不是卷组, 它只是一个物理卷。
查看所有卷组的命令:vgs  # 查看所有卷组信息
root@root:~# vgsVG          #PV #LV #SN Attr   VSize    VFree ubuntu-vg-1   1   1   0 wz--n- <126.00g 63.00g
查看卷组由哪些物理卷构成?pvscan命令可以看到
root@root:~# pvscanPV /dev/sda3   VG ubuntu-vg-1     lvm2 [<126.00 GiB / 63.00 GiB free]Total: 1 [<126.00 GiB] / in use: 1 [<126.00 GiB] / in no VG: 0 [0   ]
查看已建立的逻辑卷?lvscan命令
root@root:~# lvscanACTIVE            '/dev/ubuntu-vg-1/ubuntu-lv' [<63.00 GiB] inherit
root@root:~# ls /dev/ubuntu-vg-1/ubuntu-lv
/dev/ubuntu-vg-1/ubuntu-lv
看来,/dev/mapper/ubuntu--vg--1-ubuntu--lv 就是 /dev/ubuntu-vg-1/ubuntu-lv
root@root:~# ls -l /dev/ubuntu-vg-1/ubuntu-lv
lrwxrwxrwx 1 root root 7 May  8 15:18 /dev/ubuntu-vg-1/ubuntu-lv -> ../dm-0
root@root:~# ls -l /dev/mapper/ubuntu--vg--1-ubuntu--lv
lrwxrwxrwx 1 root root 7 May  8 15:18 /dev/mapper/ubuntu--vg--1-ubuntu--lv -> ../dm-0
最终答案:确实不应该是/dev/sda3/ubuntu--vg--1-ubuntu--lv,应该和/dev/ubuntu-vg-1/ubuntu-lv相关
重要参考:划分磁盘命令(物理卷、卷组、逻辑卷)
- 很多命令
1.9 问题9:为什么是/dev/mapper/呢?
 
重要参考:
linux: /dev/mapper/目录的作用
- 总结来说,/dev/mapper/目录是 Linux 系统中管理复杂存储配置的关键部分,尤其是在使用 LVM 或设备映射功能时。通过这个目录,用户和系统管理员可以更方便地访问和管理这些虚拟存储设备。
Linux系统/dev/mapper目录浅谈
- 其实在系统里/dev/Volume/lv_root 和 /dev/mapper/Volume-lv_root以及/dev/dm-0都是一个东西,都可当作一个分区来对待。
1.10 常用磁盘命令总结
- df -hT:查看已经挂载使用的磁盘空间
- lsblk查看所有硬盘信息(包括未分区、未加入逻辑卷、未挂载使用的)