前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >Linux多块物理磁盘做LVM

Linux多块物理磁盘做LVM

原创
作者头像
Bob hadoop
修改2021-03-01 14:27:03
4.9K0
修改2021-03-01 14:27:03
举报
文章被收录于专栏:日常杂记

最近刚刚跳槽,新单位同事问了我个问题,突然把我问懵了,因为好久没有接触底层磁盘了,于是做了以下的实验。

首先电脑开虚拟机,在虚拟机上新建四块磁盘

虚拟机设置页面
虚拟机设置页面

开机查看磁盘状态。每块盘我添加的为2G可以看到sdb、sdc、sdd、sde四块2G磁盘。

代码语言:javascript
复制
[root@bigdata01 ~]# fdisk -l
磁盘 /dev/sda:53.7 GB, 53687091200 字节,104857600 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘标签类型:dos
磁盘标识符:0x0009e28f
   设备 Boot      Start         End      Blocks   Id  System
/dev/sda1   *        2048     2099199     1048576   83  Linux
/dev/sda2         2099200   104857599    51379200   8e  Linux LVM
磁盘 /dev/sdb:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdc:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sdd:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/sde:2147 MB, 2147483648 字节,4194304 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-root:47.2 GB, 47240445952 字节,92266496 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节
磁盘 /dev/mapper/centos-swap:5368 MB, 5368709120 字节,10485760 个扇区
Units = 扇区 of 1 * 512 = 512 bytes
扇区大小(逻辑/物理):512 字节 / 512 字节
I/O 大小(最小/最佳):512 字节 / 512 字节

对硬盘/dev/sdb进行分区,其余三块盘也要进行如下操作。

代码语言:javascript
复制
[root@bigdata01 ~]# fdisk /dev/sdb
欢迎使用 fdisk (util-linux 2.23.2)。
更改将停留在内存中,直到您决定将更改写入磁盘。
使用写入命令前请三思。
Device does not contain a recognized partition table
使用磁盘标识符 0x58177a33 创建新的 DOS 磁盘标签。
命令(输入 m 获取帮助):n
Partition type:
   p   primary (0 primary, 0 extended, 4 free)
   e   extended
Select (default p): p
分区号 (1-4,默认 1):1
起始 扇区 (2048-4194303,默认为 2048):
将使用默认值 2048
Last 扇区, +扇区 or +size{K,M,G} (2048-4194303,默认为 4194303):
将使用默认值 4194303
分区 1 已设置为 Linux 类型,大小设为 2 GiB
命令(输入 m 获取帮助):t
已选择分区 1
Hex 代码(输入 L 列出所有代码):L
 0  空              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-
 4  FAT16 <32M      40  Venix 80286     85  Linux 扩展      c7  Syrinx         
 5  扩展            41  PPC PReP Boot   86  NTFS 卷集       da  非文件系统数据 
 6  FAT16           42  SFS             87  NTFS 卷集       db  CP/M / CTOS / .
 7  HPFS/NTFS/exFAT 4d  QNX4.x          88  Linux 纯文本    de  Dell 工具      
 8  AIX             4e  QNX4.x 第2部分  8e  Linux LVM       df  BootIt         
 9  AIX 可启动      4f  QNX4.x 第3部分  93  Amoeba          e1  DOS 访问       
 a  OS/2 启动管理器 50  OnTrack DM      94  Amoeba BBT      e3  DOS R/O        
 b  W95 FAT32       51  OnTrack DM6 Aux 9f  BSD/OS          e4  SpeedStor      
 c  W95 FAT32 (LBA) 52  CP/M            a0  IBM Thinkpad 休 eb  BeOS fs        
 e  W95 FAT16 (LBA) 53  OnTrack DM6 Aux a5  FreeBSD         ee  GPT            
 f  W95 扩展 (LBA)  54  OnTrackDM6      a6  OpenBSD         ef  EFI (FAT-12/16/
10  OPUS            55  EZ-Drive        a7  NeXTSTEP        f0  Linux/PA-RISC  
11  隐藏的 FAT12    56  Golden Bow      a8  Darwin UFS      f1  SpeedStor      
12  Compaq 诊断     5c  Priam Edisk     a9  NetBSD          f4  SpeedStor      
14  隐藏的 FAT16 <3 61  SpeedStor       ab  Darwin 启动     f2  DOS 次要       
16  隐藏的 FAT16    63  GNU HURD or Sys af  HFS / HFS+      fb  VMware VMFS    
17  隐藏的 HPFS/NTF 64  Novell Netware  b7  BSDI fs         fc  VMware VMKCORE 
18  AST 智能睡眠    65  Novell Netware  b8  BSDI swap       fd  Linux raid 自动
1b  隐藏的 W95 FAT3 70  DiskSecure 多启 bb  Boot Wizard 隐  fe  LANstep        
1c  隐藏的 W95 FAT3 75  PC/IX           be  Solaris 启动    ff  BBT            
1e  隐藏的 W95 FAT1 80  旧 Minix       
Hex 代码(输入 L 列出所有代码):8e
已将分区“Linux”的类型更改为“Linux LVM”
命令(输入 m 获取帮助):w
The partition table has been altered!
Calling ioctl() to re-read partition table.
正在同步磁盘。

这里顺便说一下fdisk参数的意义,我在上面格式化磁盘的步骤分别为

1、输入n 敲回车(增加新分区)2、输入p 敲回车(创建一个基本分区,p是基本分区,e是扩展分区)3、输入1敲回车(选择分区号,默认是1,直接敲回车也可以)4、敲回车(分区起始点,没有特殊要求所以可以直接敲回车)5、敲回车(分区终点,应为食整块盘不需要预留所以默认敲回车即可)6、输入t敲回车(这种盘不能直接做lvm必须更改分区号)7、输入L敲回车(查看所有分区编号)8、输入8e敲回车(分区编号必须是8e才能做Linux LVM)9、输入w敲回车(w的意思是写入保存退出)

fdisk

a toggle a bootable flag

b edit bsd disklabel

c toggle the dos compatibility flag

d delete a partition #删除分区

g create a new empty GPT partition table #创建新的空GPT分区表

G create an IRIX (SGI) partition table #创新新的IRIX分区表

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 create a new empty Sun disklabel

t change a partition's system id #更改分区系统id

u change display/entry units

v verify the partition table #检查分区表

w write table to disk and exit #保存退出

x extra functionality (experts only) #额外功能

lvm基本概念

基本的逻辑卷管理概念:

PV(Physical Volume)- 物理卷

物理卷在逻辑卷管理中处于最底层,它可以是实际物理硬盘上的分区,也可以是整个物理硬盘,也可以是raid设备。

VG(Volumne Group)- 卷组

卷组建立在物理卷之上,一个卷组中至少要包括一个物理卷,在卷组建立之后可动态添加物理卷到卷组中。一个逻辑卷管理系统工程中可以只有一个卷组,也可以拥有多个卷组。

LV(Logical Volume)- 逻辑卷

逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组

PVL图
PVL图

创建pv

代码语言:javascript
复制
[root@bigdata01 ~]# pvcreate /dev/sdb1
  Physical volume "/dev/sdb1" successfully created.
[root@bigdata01 ~]# pvcreate /dev/sdc1
  Physical volume "/dev/sdc1" successfully created.
[root@bigdata01 ~]# pvcreate /dev/sdd1
  Physical volume "/dev/sdd1" successfully created.
[root@bigdata01 ~]# pvcreate /dev/sde1
  Physical volume "/dev/sde1" successfully created.

检查

代码语言:javascript
复制
[root@bigdata01 ~]# pvscan 
  PV /dev/sda2   VG centos          lvm2 [<49.00 GiB / 0    free]
  PV /dev/sdd1                      lvm2 [<2.00 GiB]
  PV /dev/sdc1                      lvm2 [<2.00 GiB]
  PV /dev/sdb1                      lvm2 [<2.00 GiB]
  PV /dev/sde1                      lvm2 [<2.00 GiB]
  Total: 5 [56.99 GiB] / in use: 1 [<49.00 GiB] / in no VG: 4 [<8.00 GiB]

创建vg

代码语言:javascript
复制
[root@bigdata01 ~]# vgcreate vg_bigdata /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
  Volume group "vg_bigdata" successfully created

查看vg

代码语言:javascript
复制
[root@bigdata01 ~]# vgdisplay vg_bigdata
  --- Volume group ---
  VG Name               vg_bigdata
  System ID             
  Format                lvm2
  Metadata Areas        4
  Metadata Sequence No  1
  VG Access             read/write
  VG Status             resizable
  MAX LV                0
  Cur LV                0
  Open LV               0
  Max PV                0
  Cur PV                4
  Act PV                4
  VG Size               7.98 GiB
  PE Size               4.00 MiB
  Total PE              2044
  Alloc PE / Size       0 / 0   
  Free  PE / Size       2044 / 7.98 GiB
  VG UUID               6UYFgl-NA3y-EZqC-8evW-h1oK-dEIU-No4pfU

创建lv

代码语言:javascript
复制
[root@bigdata01 ~]# lvcreate -L 7.98G -n lvbigdata vg_bigdata
  Rounding up size to full physical extent 7.98 GiB
  Logical volume "lvbigdata" created.

查看lv,可以发现lv做好了。

代码语言:javascript
复制
[root@bigdata01 ~]# lvdisplay  vg_bigdata -v
  --- Logical volume ---
  LV Path                /dev/vg_bigdata/lvbigdata
  LV Name                lvbigdata
  VG Name                vg_bigdata
  LV UUID                280Jm0-tleY-7VHq-PhZH-zN4u-Loy9-AtuSt3
  LV Write Access        read/write
  LV Creation host, time bigdata01, 2021-02-27 00:43:30 +0800
  LV Status              available
  # open                 0
  LV Size                7.98 GiB
  Current LE             2043
  Segments               4
  Allocation             inherit
  Read ahead sectors     auto
  - currently set to     8192
  Block device           253:2

我们接下来格式化这块LVM

代码语言:javascript
复制
[root@bigdata01 ~]# mkfs.xfs /dev/vg_bigdata/lvbigdata 
meta-data=/dev/vg_bigdata/lvbigdata isize=512    agcount=4, agsize=523008 blks
         =                       sectsz=512   attr=2, projid32bit=1
         =                       crc=1        finobt=0, sparse=0
data     =                       bsize=4096   blocks=2092032, imaxpct=25
         =                       sunit=0      swidth=0 blks
naming   =version 2              bsize=4096   ascii-ci=0 ftype=1
log      =internal log           bsize=4096   blocks=2560, version=2
         =                       sectsz=512   sunit=0 blks, lazy-count=1
realtime =none                   extsz=4096   blocks=0, rtextents=0

创建挂载目录

代码语言:javascript
复制
[root@bigdata01 ~]# mkdir /hadoop

编辑/etc/fstab 看最后一行为我添件内容

代码语言:javascript
复制
[root@bigdata01 ~]# cat /etc/fstab 
#
# /etc/fstab
# Created by anaconda on Wed Feb 24 18:10:00 2021
#
# Accessible filesystems, by reference, are maintained under '/dev/disk'
# See man pages fstab(5), findfs(8), mount(8) and/or blkid(8) for more info
#
/dev/mapper/centos-root /                       xfs     defaults        0 0
UUID=327ecc0c-2106-4a22-b49e-8acc1df0c6f1 /boot                   xfs     defaults        0 0
/dev/mapper/centos-swap swap                    swap    defaults        0 0
/dev/vg_bigdata/lvbigdata    /hadoop   xfs   defaults  0 0 

然后挂载、查看。

代码语言:javascript
复制
[root@bigdata01 ~]# mount -a
[root@bigdata01 ~]# df -h
文件系统                          容量  已用  可用 已用% 挂载点
/dev/mapper/centos-root            44G  6.8G   38G   16% /
devtmpfs                          3.8G     0  3.8G    0% /dev
tmpfs                             3.8G     0  3.8G    0% /dev/shm
tmpfs                             3.8G   13M  3.8G    1% /run
tmpfs                             3.8G     0  3.8G    0% /sys/fs/cgroup
/dev/sda1                        1014M  157M  858M   16% /boot
tmpfs                             778M  4.0K  778M    1% /run/user/42
tmpfs                             778M   28K  778M    1% /run/user/0
/dev/sr0                          4.2G  4.2G     0  100% /run/media/root/CentOS 7 x86_64
/dev/mapper/vg_bigdata-lvbigdata  8.0G   33M  8.0G    1% /hadoop

查看磁盘

代码语言:javascript
复制
[root@bigdata01 ~]# lsblk
NAME                     MAJ:MIN RM  SIZE RO TYPE MOUNTPOINT
sda                        8:0    0   50G  0 disk 
├─sda1                     8:1    0    1G  0 part /boot
└─sda2                     8:2    0   49G  0 part 
  ├─centos-root          253:0    0   44G  0 lvm  /
  └─centos-swap          253:1    0    5G  0 lvm  [SWAP]
sdb                        8:16   0    2G  0 disk 
└─sdb1                     8:17   0    2G  0 part 
  └─vg_bigdata-lvbigdata 253:2    0    8G  0 lvm  /hadoop
sdc                        8:32   0    2G  0 disk 
└─sdc1                     8:33   0    2G  0 part 
  └─vg_bigdata-lvbigdata 253:2    0    8G  0 lvm  /hadoop
sdd                        8:48   0    2G  0 disk 
└─sdd1                     8:49   0    2G  0 part 
  └─vg_bigdata-lvbigdata 253:2    0    8G  0 lvm  /hadoop
sde                        8:64   0    2G  0 disk 
└─sde1                     8:65   0    2G  0 part 
  └─vg_bigdata-lvbigdata 253:2    0    8G  0 lvm  /hadoop
sr0                       11:0    1  4.2G  0 rom  /run/media/root/CentOS 7 x86_64

总结:快6年没碰底层了,以后没事的时候就多学习学习。

完结,撒花。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。

如有侵权,请联系 cloudcommunity@tencent.com 删除。

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档