诱因:服务器原来装的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/sdb1 Physical volume "/dev/sdb1" successfully created. [root@CentOS7-0003 /]$ pvcreate /dev/sdb2 Physical 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 VFree centos_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分配给新建的逻辑卷lvdata01 Logical volume "lvdata01" created. [root@CentOS7-0003 /]$ lvcreate -l 100%FREE -n lvdata02 vgdata #将vgdata上剩余空间分配给新建的逻辑卷lvdata02 Logical volume "lvdata02" created. [root@CentOS7-0003 /]$ lvs #查看逻辑卷信息 LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert root 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:~# pvs
PV 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:~# vgs
VG #PV #LV #SN Attr VSize VFree
ubuntu-vg-1 1 1 0 wz--n- <126.00g 63.00g
查看卷组由哪些物理卷构成?pvscan
命令可以看到
root@root:~# pvscan
PV /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:~# lvscan
ACTIVE '/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
查看所有硬盘信息(包括未分区、未加入逻辑卷、未挂载使用的)