最近刚刚跳槽,新单位同事问了我个问题,突然把我问懵了,因为好久没有接触底层磁盘了,于是做了以下的实验。
首先电脑开虚拟机,在虚拟机上新建四块磁盘
开机查看磁盘状态。每块盘我添加的为2G可以看到sdb、sdc、sdd、sde四块2G磁盘。
[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进行分区,其余三块盘也要进行如下操作。
[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)- 逻辑卷
逻辑卷建立在卷组之上,卷组中的未分配空间可以用于建立新的逻辑卷,逻辑卷建立后可以动态地扩展和缩小空间。系统中的多个逻辑卷可以属于同一个卷组,也可以属于不同的多个卷组
创建pv
[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.
检查
[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
[root@bigdata01 ~]# vgcreate vg_bigdata /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1
Volume group "vg_bigdata" successfully created
查看vg
[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
[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做好了。
[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
[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
创建挂载目录
[root@bigdata01 ~]# mkdir /hadoop
编辑/etc/fstab 看最后一行为我添件内容
[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
然后挂载、查看。
[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
查看磁盘
[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 删除。