最近在上海新建机房的时候,给了我2台M2机型服务器,在做初始化的时候发现有一堆磁盘:
其中挂载的只有 /dev/sda,其他都在那闲着。运管那边告诉我这个机型不能做 raid。而根据我这边的业务需求,我并不能一次用到这么多分区,所以必须使用 LVM 合并使用。
关于 LVM 的创建,目前网络上一堆详细教程,用起来也非常简单,这里就只贴一下我的过程。
①、用 fdisk 给每一个磁盘创建一个 8e 分区:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
|
[
root
@
Centos64
:
~
]
# fdisk /dev/sdb
The
device
presents
a
logical
sector
size
that
is
smaller
than
the
physical
sector
size
.
Aligning
to
a
physical
sector
(
or
optimal
I
/
O
)
size
boundary
is
recommended
,
or
performance
may
be
impacted
.
WARNING
:
DOS
-
compatible
mode
is
deprecated
.
It
's strongly recommended to
switch off the mode (command '
c
') and change display units to
sectors (command '
u'
)
.
Command
(
m
for
help
)
:
n
#创建
Command
action
e
extended
p
primary
partition
(
1
-
4
)
p
#选择主分区
Partition
number
(
1
-
4
)
:
1
First
cylinder
(
1
-
36481
,
default
1
)
:
1
Last
cylinder
,
+
cylinders
or
+
size
{
K
,
M
,
G
}
(
1
-
36481
,
default
36481
)
:
#直接回车选择最大
Using
default
value
36481
Command
(
m
for
help
)
:
t
#输入t进入类型选择
Selected
partition
1
Hex
code
(
type
L
to
list
codes
)
:
8e
#输入8e格式
Changed
system
type
of
partition
1
to
8e
(
Linux
LVM
)
Command
(
m
for
help
)
:
w
#w保存
|
这样就完成了一块磁盘,接着我们依次将其他 sdc到sdl的磁盘也操作一把。
②、全部完成后,使用 pvcreate 将所有分区转化成物理卷,即添加LVM属性信息并划分PE存储单元:
创建完 PV 之后,就可以使用 pvdisplay 或 pvs 查看详细信息了,篇幅有限,这里我就不贴了。
③、下面我们需要创建一个 VG,然后 PV 都加入到这个卷组当中,卷名可自定义,比如 vg:
1
2
3
|
[
root
@
Centos64
:
~
]
# vgcreate vg /dev/sdb1 /dev/sdc1 /dev/sdd1 /dev/sde1 /dev/sdf1 /dev/sdg1 /dev/sdh1 /dev/sdi1 /dev/sdj1 /dev/sdk1 /dev/sdl1
Volume
group
"vg"
successfully
created
|
同样,在创建好VG以后,我们也可以使用 vgdisplay 或者 vgs 命来来查看VG的信息(略)
④、接着,使用 lvcreate 命令基于VG创建逻辑卷,vg 和 lvm 我们自定义的名称:
同样我们可以使用 lvdisplay 或者 lvs 命令来查看创建好的逻辑卷的信息(略)
⑤、格式化创建的逻辑卷:
1
|
[
root
@
Centos64
:
~
]
# mkfs.ext4 /dev/vg/lvm
|
⑥、挂载分区:
这样,我们就完成了 LVM 的手工创建过程了,我还有一台 M2 要弄,而且听运管说以后会继续交付这类机型,我可不想这么苦逼的操作了,光那个创建 8e 格式分区就已经很坑了。
所以,就将上面的操作串成脚本,一键完成:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
|
#!/bin/bash
partition
=
/
data
# 定义最终挂载的名称
vgname
=
vg
# 定义逻辑卷组的名称
lvname
=
lvm
# 定义逻辑卷的名称
code
=
'b c d e f g h i k j l'
# 根据分区的实际情况修改
disk
=
for
i
in
$code
do
fdisk
/
dev
/
sd
$i
<<
EOF
# 这里自动化完成了所有分区fdisk苦逼的交互步骤
n
p
1
1
t
8e
w
EOF
disk
=
"$disk /dev/sd${i}1"
# 将所有分区拼起来
done
pvcreate
$disk
vgcreate
$vgname
$disk
lvcreate
-
l
100
%
VG
-
n
$lvmname
$vgname
mkfs
.ext4
/
dev
/
$vgname
/
$lvmname
mkdir
-
p
$partition
echo
"
/
dev
/
$vgname
/
$lvmname
$partition
ext4
noatime
,
acl
,
user
_xattr
1
2'
>>
/
dev
/
fstab
mount
-
a
df
-
h
|
哦了,就写这么多,以备后用。