lvm自动创建脚本

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了lvm自动创建脚本相关的知识,希望对你有一定的参考价值。

注1:此脚本适用于新机器的lvm逻辑卷创建,仅支持系统中只有一个未格式化的新的数据盘,适用于centos6,centos7未测试

注2:当系统中需要同时对2个及以上的新磁盘做lvm时,此脚本将不再适用;一般来说,此脚本在新机器做lvm时最为实用

lvm_create.sh

#!/bin/bash
##############################################
#Author: Liuzhengwei - [email protected]
#QQ:1135960569
#Last modified: 2018-04-08 15:24
#Filename: test.sh
#Description: 适用于新机器的lvm逻辑卷创建,仅支持新添加了一个数据盘且系统中之前无lvm,适用于centos6,不适用于centos7
##############################################
#识别新添加的磁盘
echo "- - -" > /sys/class/scsi_host/host0/scan
echo "- - -" > /sys/class/scsi_host/host1/scan
echo "- - -" > /sys/class/scsi_host/host2/scan
#检测新加磁盘的盘符及容量
DIVISOR=1073741824
DISK_NAME=`fdisk -l | grep "Disk /dev/sd" | awk -F '[ :]+' '{print $2}'`
for disk in ${DISK_NAME[*]};do
        df_disk=`df -h | grep $disk | wc -l`
        if [[ $df_disk -eq 0 ]];then
                pvs_disk=`pvs | grep $disk | wc -l`
                if [[ $pvs_disk -eq 0 ]];then
                        new_disk_size=`fdisk -l | grep "$disk" | awk -F '[ ,:]+' '{print $5}'`
                        new_disk_size_G=$(($new_disk_size/$DIVISOR))
                        echo "检测到新磁盘:$disk        容量为:${new_disk_size_G}G"
                        echo "开始创建lvm逻辑卷"
                        #创建lvm
                        pvcreate $disk
                        vgcreate `hostname` $disk
                        lvcreate -L $(($new_disk_size_G-1))G -n data `hostname`
                        mkdir /data
                        /bin/chown -R staplesapp.admin /data
                        mkfs.ext4 /dev/`hostname`/data
                        echo "/dev/`hostname`/data /data ext4 defaults 0 0" >> /etc/fstab
                        mount -a
                fi
        fi
done
echo "lvm逻辑卷已经创建完成,请检查确认~"




以上是关于lvm自动创建脚本的主要内容,如果未能解决你的问题,请参考以下文章

lvm 管理 与lvm 脚本化创建

LVMLVM自动扩容脚本

Shell脚本一键扩展LVM新分区

简单轻松:Linux下从零开始创建lvm虚拟磁盘阵列+脚本化解决方案

python运维实战--LVM创建和在线扩容

创建自己的代码片段(CodeSnippet)