![](https://i-blog.csdnimg.cn/blog_migrate/83df8b591f2ae0e9e043527da1436836.png)
Raid 0 性能最好,多块硬盘并行写入,数据分成512k每小块分布在三块硬盘上,但是没有容错性,2块硬盘就能做
![](https://i-blog.csdnimg.cn/blog_migrate/77d907b0604f4c9ebb157e3b48577030.png)
Raid 1磁盘利用率只有50%,叫镜像卷,两块盘数据一摸一样,这里讲下raid234都已被淘汰,其中raid4的原理是4块磁盘,在其中一块磁盘上有个校验位,当1,2,3块磁盘中任何一块坏了可以通过第4块磁盘上的校验位算出来损坏磁盘上的数据
![](https://i-blog.csdnimg.cn/blog_migrate/d56232b48b8893116236527df4b31e90.png)
![](https://i-blog.csdnimg.cn/blog_migrate/5ba8a709926ac3d82c2d451d77b81d6c.png)
![](https://i-blog.csdnimg.cn/blog_migrate/19ecdea9f8b0218f22f786ef372bf1cb.png)
![](https://i-blog.csdnimg.cn/blog_migrate/658a43ac000d9997cb31c0997507f748.png)
![](https://i-blog.csdnimg.cn/blog_migrate/540f82175d845d9cd295e3ab95878797.png)
创建逻辑卷,
[root@localhost ~]# fdisk /dev/sdb
Welcome to fdisk (util-linux 2.23.2).
Changes will remain in memory only, until you decide to write them.
Be careful before using the write command.
Command (m for help): p
Disk /dev/sdb: 21.5 GB, 21474836480 bytes, 41943040 sectors
Units = sectors of 1 * 512 = 512 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk label type: dos
Disk identifier: 0x9dbfc842
Device Boot Start End Blocks Id System
Command (m for help): n
Partition type:
p primary (0 primary, 0 extended, 4 free)
e extended
Select (default p): p
Partition number (1-4, default 1): 1
First sector (2048-41943039, default 2048):
Using default value 2048
Last sector, +sectors or +size{K,M,G} (2048-41943039, default 41943039): +5G
Partition 1 of type Linux and of size 5 GiB is set
Command (m for help): n
Partition type:
p primary (1 primary, 0 extended, 3 free)
e extended
Select (default p): p
Partition number (2-4, default 2): 2
First sector (10487808-41943039, default 10487808):
Using default value 10487808
Last sector, +sectors or +size{K,M,G} (10487808-41943039, default 41943039): +8G
Partition 2 of type Linux and of size 8 GiB is set
注意:还要使用t参数改 system id 改为8e(lvm)
先把物理的磁盘变成物理卷
[root@localhost ~]# pvs 查看物理卷信息
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 24.80g 0
[root@localhost ~]# pvdisplay 查看物理卷信息
--- Physical volume ---
PV Name /dev/sda2
VG Name centos
PV Size 24.80 GiB / not usable 3.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 6349
Free PE 0
Allocated PE 6349
PV UUID iW76Q5-9Sc8-6xgg-RQuD-tJPW-mMQk-0UNRGa
使用sdb1,和sdb2来创建物理卷,警告是提醒我们上面曾经有数据
![](https://i-blog.csdnimg.cn/blog_migrate/f1718b385f9f1b01f0a8fb570aedd499.png)
[root@localhost ~]# pvcreate /dev/sdb{1,2}
WARNING: xfs signature detected on /dev/sdb1 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb1.
WARNING: xfs signature detected on /dev/sdb2 at offset 0. Wipe it? [y/n]: y
Wiping xfs signature on /dev/sdb2.
Physical volume "/dev/sdb1" successfully created.
Physical volume "/dev/sdb2" successfully created.
此时在查看sdb1和sdb2上面VG一栏是空的,还没有卷组,PE的大小也没有
![](https://i-blog.csdnimg.cn/blog_migrate/c498ae71fb5d10601e54fc895511580f.png)
[root@localhost ~]# vgs 查看卷组
VG #PV #LV #SN Attr VSize VFree
centos 1 2 0 wz--n- 24.80g 0
[root@localhost ~]# vgdisplay 查看卷组
--- Volume group ---
VG Name centos
System ID
Format lvm2
Metadata Areas 1
Metadata Sequence No 3
VG Access read/write
VG Status resizable
MAX LV 0
Cur LV 2
Open LV 2
Max PV 0
Cur PV 1
Act PV 1
VG Size 24.80 GiB
PE Size 4.00 MiB
Total PE 6349
Alloc PE / Size 6349 / 24.80 GiB
Free PE / Size 0 / 0
VG UUID vbPBqJ-Alm9-JUpP-OQ6D-EP3c-vMsj-TCWCsk
[root@localhost ~]# vgcreate vg00 /dev/sdb{1,2}
Volume group "vg00" successfully created
创建卷组名叫vg00 ,把asb1和sdb2 加入vg00的卷组
卷组有了现在开始创建逻辑卷
[root@localhost ~]# lvs 查看逻辑卷
[root@localhost ~]# lvdisplay 查看逻辑卷
[root@localhost ~]# lvcreate -n mysql -L 9G vg00
Logical volume "mysql" created.
-n参数表示给创建的逻辑卷取个名,-L指明逻辑卷的大小这里输的是9G,后面跟vg00表示从vg00的卷组里取
![](https://i-blog.csdnimg.cn/blog_migrate/8022829ef7e421ee393f8514d916a4d0.png)
[root@localhost ~]# mkfs.xfs /dev/vg00/mysql 创建文件系统
[root@localhost ~]# blkid 使用逻辑卷的uuid
/dev/mapper/vg00-mysql: UUID="6bcd7019-4134-4a8f-8f04-cb34e092a27d" TYPE="xfs"
[root@localhost ~]# mkdir /mnt/mysql 创建目录后挂载
[root@localhost ~]# mount /dev/vg00/mysql /mnt/mysql
[root@localhost ~]# df -h 查看已挂载成功
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-mysql 9.0G 33M 9.0G 1% /mnt/mysql
重启后就没了,要想永久挂载还得写入/etc/fstab内
测试逻辑卷读写速度,写一样的数据,还是有提升
[root@localhost ~]# dd if=/dev/zero of=/data/f1 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 7.59181 s, 141 MB/s
[root@localhost ~]# dd if=/dev/zero of=/mnt/mysql/f2 bs=1M count=1024
1024+0 records in
1024+0 records out
1073741824 bytes (1.1 GB) copied, 3.06795 s, 350 MB/s
11.4章LVM管理详解
扩展逻辑卷,前提是卷组有空间可以扩展,
[root@localhost ~]# vgdisplay 可以查到卷组还有4个G空间可以扩展
--- Volume group ---
VG Name vg00
Alloc PE / Size 2304 / 9.00 GiB
Free PE / Size 1022 / 3.99 GiB
VG UUID hjshDc-2WNt-PsxS-Q9D0-x3oP-QlNJ-wLgkiH
[root@localhost ~]# lvextend -l +100%free /dev/vg00/mysql 扩展逻辑卷
Size of logical volume vg00/mysql changed from 9.00 GiB (2304 extents) to 12.99 GiB (3326 extents).
Logical volume vg00/mysql successfully resized.
-l参数后跟增加的空间数,再后面接要扩展的逻辑卷,默认只能vg00分配空间
[root@localhost ~]# xfs_growfs /mnt/mysql/ 更新文件系统,如果原来文件系统是etx4命令不一样
[root@localhost ~]# df -h 此时再查看文件系统已更新,且并不影响用户使用
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/centos-root 23G 2.9G 20G 13% /
/dev/sda1 197M 128M 69M 65% /boot
/dev/mapper/vg00-mysql 13G 1.1G 12G 8% /mnt/mysql
再添加一块新硬盘到vg00的卷组里面
[root@localhost ~]# echo "- - -" > /sys/class/scsi_host/host2/scan 添加硬盘后刷新
硬盘不用改system id
[root@localhost ~]# pvcreate /dev/sdc 直接创建物理卷
Physical volume "/dev/sdc" successfully created.
[root@localhost ~]# blkid 查看
/dev/sdc: UUID="TdOzbM-UgWw-4HEC-gePy-5PBh-zqFb-0eF7Ey" TYPE="LVM2_member"
[root@localhost ~]# pvs 已经多了个物理卷
PV VG Fmt Attr PSize PFree
/dev/sda2 centos lvm2 a-- 24.80g 0
/dev/sdc lvm2 --- 5.00g 5.00g
[root@localhost ~]# vgextend vg00 /dev/sdc 扩展vg00,把sdc加进去
Volume group "vg00" successfully extende
现在可以扩展原来的逻辑卷,也可以创建新的逻辑卷
[root@localhost ~]# lvcreate -n binlog -L 3G vg00 以创建新逻辑卷为例
Logical volume "binlog" created
[root@localhost ~]# mkfs.ext4 /dev/vg00/binlog 本例使用ext4来举例
[root@localhost ~]# mount /dev/vg00/binlog /mnt/binlog
[root@localhost ~]# lvextend -l +200 /dev/vg00/binlog扩展binlog,增加200个pe,一个pe 4m
Size of logical volume vg00/binlog changed from 3.00 GiB (768 extents) to 3.78 GiB (968 extents).
Logical volume vg00/binlog successfully resized.
同样要更新文件系统后才能看到
[root@localhost ~]# resize2fs /dev/vg00/binlog 更新文件系统etx4的命令
resize2fs 1.42.9 (28-Dec-2013)
Filesystem at /dev/vg00/binlog is mounted on /mnt/binlog; on-line resizing required
old_desc_blocks = 1, new_desc_blocks = 1
The filesystem on /dev/vg00/binlog is now 991232 blocks lo
[root@localhost ~]# lvextend -r -l +100 /dev/vg00/binlog也可以在扩展时加-r的参数,实时更新文件系统
缩减逻辑卷文件系统,首先要先取消挂载
[root@localhost ~]# umount /mnt/binlog
然后先缩文件系统,再缩小逻辑卷
[root@localhost ~]# resize2fs /dev/vg00/binlog 3G 缩小到3个G,提示先运行下面的命令
resize2fs 1.42.9 (28-Dec-2013)
Please run 'e2fsck -f /dev/vg00/binlog' first.
[root@localhost ~]# e2fsck -f /dev/vg00/binlog 运行下
[root@localhost ~]# resize2fs /dev/vg00/binlog 3G 在缩小文件系统至3G
[root@localhost ~]# lvreduce -L 3G /dev/vg00/binlog 之后缩小逻辑卷至3G
WARNING: Reducing active logical volume to 3.00 GiB.
THIS MAY DESTROY YOUR DATA (filesystem etc.)
Do you really want to reduce vg00/binlog? [y/n]: y
Size of logical volume vg00/binlog changed from 4.17 GiB (1068 extents) to 3.00 GiB (768 extents).
Logical volume vg00/binlog successfully resized.
[root@localhost ~]# mount /dev/vg00/binlog /mnt/binlog/
[root@localhost ~]# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg00-binlog 2.9G 9.0M 2.8G 1% /mnt/binlog
只能所etx4的,缩不了xfs的,xfs的只能扩不能缩
![](https://i-blog.csdnimg.cn/blog_migrate/8499dcc9531aef0c4e2ae9350b1ee84c.png)
迁移举例:
[root@localhost binlog]# umount /mnt/binlog/ 先将逻辑卷挂载的文件系统卸载
[root@localhost /]# vgrename vg00 vg11 注意不要和迁移到目标主机上的卷组名称一样了,要设置为不一样(改名)
Volume group "vg00" successfully renamed to "vg11"
[root@localhost /]# vgchange -an vg11 先禁用卷组
0 logical volume(s) in volume group "vg11" now active
[root@localhost mysql]# vgexport vg11 将卷组导出来,此时源主机可以关机,将硬盘装到目标主机上
Volume group "vg11" successfully exported
以下在目标主机上操作
将硬盘接到新主机上,
[root@localhost ~]# vgdisplay 查看是否有卷组
[root@localhost ~]# vgimport vg001 导入卷组
Volume group "vg001" successfully imported
[root@localhost ~]# vgchange -ay vg001 启用卷组
1 logical volume(s) in volume group "vg001" now active
[root@localhost ~]# mkdir /mnt/vg001-mysql 新建挂载点
[root@localhost ~]# mount /dev/vg001/mysql /mnt/vg001-mysql/ 挂载原来的逻辑卷
查看数据还在