一.环境信息 OS:CentOS 6.6 mysql :mariadb 10.0.20
二.环境准备
先安装xfs相关的包: yum install xfs* 300G盘建立pv: pvcreate /dev/sdc Physical volume "/dev/sdc" successfully created 建立vg: vgcreate vgdata /dev/sdc Volume group "vgdata" successfully created 建立lv: lvcreate -L 299G -n lvdata vgdata Logical volume "lvdata" created
建立xfs文件系统: mkfs.xfs -f -i attr=2 -l lazy-count=1,sectsize=4096 -b size=4096 -d sectsize=4096 -L data /dev/vgdata/lvdata 临时挂载: mkdir -p /datatemp mount -o rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc /dev/vgdata/lvdata /datatemp 停掉mysql: /apps/svr/mariadb10/bin/mysqladmin -uroot -p -S /tmp/mysql3306.sock shutdown 先将原盘数据copy到新盘上: cd /data cp -p -r * /datatemp/ umount文件系统: umount /data umount /datatemp mount新盘: mount -o rw,noatime,nodiratime,noikeep,nobarrier,allocsize=100M,attr2,largeio,inode64,swalloc /dev/vgdata/lvdata /data 启动mysql: /apps/svr/mariadb10/bin/mysqld_safe --defaults-file=/apps/dbdat/my3306.cnf & 查看vg: [root@m0782 data]# vgs VG #PV #LV #SN Attr VSize VFree vg_root 1 2 0 wz--n- 39.80g 0 vgapp 1 1 0 wz--n- 200.00g 5.00g vgdata 1 1 0 wz--n- 300.00g 1020.00m 删除原VG: [root@m0782 data]# vgremove vgapp Do you really want to remove volume group "vgapp" containing 1 logical volumes? [y/n]: y Do you really want to remove active logical volume lvapp? [y/n]: y Logical volume "lvapp" successfully removed Volume group "vgapp" successfully removed
查看pv: [root@m0782 data]# pvs PV VG Fmt Attr PSize PFree /dev/sda2 vg_root lvm2 a-- 39.80g 0 /dev/sdb1 lvm2 --- 200.00g 200.00g /dev/sdc vgdata lvm2 a-- 300.00g 1020.00m
三.在线扩容
现在是需要将/dev/sdb1在线加到vgdata中,并在线扩容xfs文件系统/dev/vgdata/lvdata,现在才到正题,前面是准备环境。
将/dev/sdb1加到vgdata: vgextend vgdata /dev/sdb1 Volume group "vgdata" successfully extended
[root@m0782 data]# vgs VG #PV #LV #SN Attr VSize VFree vg_root 1 2 0 wz--n- 39.80g 0 vgdata 2 1 0 wz--n- 499.99g 200.99g
[root@m0782 data]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert LogVol01 vg_root -wi-ao---- 35.80g lv_swap vg_root -wi-ao---- 4.00g lvdata vgdata -wi-ao---- 299.00g
lv扩展: lvextend -L 499G /dev/vgdata/lvdata (若+10G,用-L +10G来表示)
Size of logical volume vgdata/lvdata changed from 299.00 GiB (76544 extents) to 499.00 GiB (127744 extents). Logical volume lvdata successfully resized [root@m0782 data]# lvs LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert LogVol01 vg_root -wi-ao---- 35.80g lv_swap vg_root -wi-ao---- 4.00g lvdata vgdata -wi-ao---- 499.00g [root@mvxl0782 data]# vgs VG #PV #LV #SN Attr VSize VFree vg_root 1 2 0 wz--n- 39.80g 0 vgdata 2 1 0 wz--n- 499.99g 1016.00m
xfs查看: xfs_info /dev/vgdata/lvdata [root@m0782 data]# xfs_info /dev/vgdata/lvdata meta-data=/dev/mapper/vgdata-lvdata isize=256 agcount=4, agsize=19595264 blks = sectsz=4096 attr=2, projid32bit=0 data = bsize=4096 blocks=78381056, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=38272, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0
xfs扩展:
扩展前: /dev/mapper/vgdata-lvdata 299G 36G 264G 12% /data
xfs_growfs /dev/vgdata/lvdata ---若加-D 参数可以指定扩大到多少,不加直接加到最大空间 [root@m0782 data]# xfs_growfs /dev/vgdata/lvdata meta-data=/dev/mapper/vgdata-lvdata isize=256 agcount=4, agsize=19595264 blks = sectsz=4096 attr=2, projid32bit=0 data = bsize=4096 blocks=78381056, imaxpct=25 = sunit=0 swidth=0 blks naming =version 2 bsize=4096 ascii-ci=0 log =internal bsize=4096 blocks=38272, version=2 = sectsz=4096 sunit=1 blks, lazy-count=1 realtime =none extsz=4096 blocks=0, rtextents=0 data blocks changed from 78381056 to 130809856 扩展后: /dev/mapper/vgdata-lvdata 499G 36G 464G 8% /data
四.检查mysql是否正常
检查进程: [root@m0782 data]# ps -ef|grep mysql apps 25359 1 0 14:21 pts/0 00:00:00 /bin/sh /apps/svr/mariadb10/bin/mysqld_safe --defaults-file=/apps/dbdat/my3306.cnf apps 25915 25359 0 14:21 pts/0 00:00:03 /apps/svr/mariadb10/bin/mysqld --defaults-file=/apps/dbdat/my3306.cnf --basedir=/apps/svr/mariadb10 --datadir=/apps/dbdat/mariadb10_data3306 --plugin-dir=/apps/svr/mariadb10/lib/plugin --log-error=/apps/logs/mysql/error3306.log --open-files-limit=8192 --pid-file=/apps/dbdat/mariadb10_data3306/mysql.pid --socket=/tmp/mysql3306.sock --port=3306 root 26402 25101 0 14:55 pts/0 00:00:00 grep mysql 检查端口: [root@m0782 data]# netstat -an|grep 3306 tcp 0 0 0.0.0.0:3306 0.0.0.0:* LISTEN unix 2 [ ACC ] STREAM LISTENING 15455908 /tmp/mysql3306.sock mysql表查询操作正常。