mirror of
https://github.com/OpenNebula/one.git
synced 2024-12-27 03:21:29 +03:00
Driver fs_lvm. method resize has been implemented (#1917)
* Driver fs_lvm. method resize has been implemented * Year bump, update sudo_commands.rb with lvextend
This commit is contained in:
parent
f20c8116e3
commit
e038e0bcc1
@ -3,7 +3,7 @@ Defaults:oneadmin secure_path = /sbin:/bin:/usr/sbin:/usr/bin
|
|||||||
|
|
||||||
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
||||||
Cmnd_Alias ONE_NET = /usr/sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip6tables, /sbin/ip, /usr/sbin/ipset, /usr/sbin/arping
|
Cmnd_Alias ONE_NET = /usr/sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip6tables, /sbin/ip, /usr/sbin/ipset, /usr/sbin/arping
|
||||||
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan
|
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan, /sbin/lvextend
|
||||||
Cmnd_Alias ONE_ISCSI = /sbin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
Cmnd_Alias ONE_ISCSI = /sbin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
||||||
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
||||||
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
||||||
|
@ -3,7 +3,7 @@ Defaults:oneadmin secure_path = /sbin:/bin:/usr/sbin:/usr/bin
|
|||||||
|
|
||||||
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
||||||
Cmnd_Alias ONE_NET = /sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip, /usr/sbin/ipset, /usr/bin/arping
|
Cmnd_Alias ONE_NET = /sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip, /usr/sbin/ipset, /usr/bin/arping
|
||||||
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan
|
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan, /sbin/lvextend
|
||||||
Cmnd_Alias ONE_ISCSI = /usr/bin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
Cmnd_Alias ONE_ISCSI = /usr/bin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
||||||
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
||||||
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
||||||
|
@ -3,7 +3,7 @@ Defaults:oneadmin secure_path = /sbin:/bin:/usr/sbin:/usr/bin
|
|||||||
|
|
||||||
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
||||||
Cmnd_Alias ONE_NET = /sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip6tables, /sbin/ip, /sbin/ipset, /usr/bin/arping
|
Cmnd_Alias ONE_NET = /sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip6tables, /sbin/ip, /sbin/ipset, /usr/bin/arping
|
||||||
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan
|
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan, /sbin/lvextend
|
||||||
Cmnd_Alias ONE_ISCSI = /usr/bin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
Cmnd_Alias ONE_ISCSI = /usr/bin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
||||||
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
||||||
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
||||||
|
@ -3,7 +3,7 @@ Defaults:oneadmin secure_path = /sbin:/bin:/usr/sbin:/usr/bin
|
|||||||
|
|
||||||
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
Cmnd_Alias ONE_MISC = /sbin/mkfs, /bin/sync, /sbin/mkswap
|
||||||
Cmnd_Alias ONE_NET = /sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip6tables, /sbin/ip, /sbin/ipset, /usr/bin/arping
|
Cmnd_Alias ONE_NET = /sbin/brctl, /sbin/ebtables, /sbin/iptables, /sbin/ip6tables, /sbin/ip, /sbin/ipset, /usr/bin/arping
|
||||||
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan
|
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan, /sbin/lvextend
|
||||||
Cmnd_Alias ONE_ISCSI = /usr/bin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
Cmnd_Alias ONE_ISCSI = /usr/bin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
||||||
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
||||||
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
||||||
|
@ -3,7 +3,7 @@ Defaults:oneadmin secure_path = /sbin:/bin:/usr/sbin:/usr/bin
|
|||||||
|
|
||||||
Cmnd_Alias ONE_MISC = /sbin/mkfs, /usr/bin/sync
|
Cmnd_Alias ONE_MISC = /sbin/mkfs, /usr/bin/sync
|
||||||
Cmnd_Alias ONE_NET = /sbin/brctl, /usr/sbin/ebtables, /usr/sbin/iptables, /usr/sbin/ip6tables, /sbin/ip, /usr/sbin/arping
|
Cmnd_Alias ONE_NET = /sbin/brctl, /usr/sbin/ebtables, /usr/sbin/iptables, /usr/sbin/ip6tables, /sbin/ip, /usr/sbin/arping
|
||||||
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan
|
Cmnd_Alias ONE_LVM = /sbin/lvcreate, /sbin/lvremove, /sbin/lvs, /sbin/vgdisplay, /sbin/lvchange, /sbin/lvscan, /sbin/lvextend
|
||||||
Cmnd_Alias ONE_ISCSI = /sbin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
Cmnd_Alias ONE_ISCSI = /sbin/iscsiadm, /usr/sbin/tgt-admin, /usr/sbin/tgtadm
|
||||||
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
Cmnd_Alias ONE_OVS = /usr/bin/ovs-ofctl, /usr/bin/ovs-vsctl
|
||||||
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
Cmnd_Alias ONE_XEN = /usr/sbin/xentop, /usr/sbin/xl, /usr/sbin/xm
|
||||||
|
@ -22,7 +22,7 @@ require "erb"
|
|||||||
CMDS = {
|
CMDS = {
|
||||||
:MISC => %w(mkfs sync mkswap),
|
:MISC => %w(mkfs sync mkswap),
|
||||||
:NET => %w(brctl ebtables iptables ip6tables ip ipset arping),
|
:NET => %w(brctl ebtables iptables ip6tables ip ipset arping),
|
||||||
:LVM => %w(lvcreate lvremove lvs vgdisplay lvchange lvscan),
|
:LVM => %w(lvcreate lvremove lvs vgdisplay lvchange lvscan lvextend),
|
||||||
:ISCSI => %w(iscsiadm tgt-admin tgtadm),
|
:ISCSI => %w(iscsiadm tgt-admin tgtadm),
|
||||||
:OVS => %w(ovs-ofctl ovs-vsctl),
|
:OVS => %w(ovs-ofctl ovs-vsctl),
|
||||||
:XEN => %w(xentop xl xm),
|
:XEN => %w(xentop xl xm),
|
||||||
|
@ -32,6 +32,7 @@ LVCREATE=${LVCREATE:-lvcreate}
|
|||||||
LVREMOVE=${LVREMOVE:-lvremove}
|
LVREMOVE=${LVREMOVE:-lvremove}
|
||||||
LVCHANGE=${LVCHANGE:-lvchange}
|
LVCHANGE=${LVCHANGE:-lvchange}
|
||||||
LVSCAN=${LVSCAN:-lvscan}
|
LVSCAN=${LVSCAN:-lvscan}
|
||||||
|
LVEXTEND=${LVEXTEND:-lvextend}
|
||||||
LVS=${LVS:-lvs}
|
LVS=${LVS:-lvs}
|
||||||
LN=${LN:-ln}
|
LN=${LN:-ln}
|
||||||
MD5SUM=${MD5SUM:-md5sum}
|
MD5SUM=${MD5SUM:-md5sum}
|
||||||
|
@ -1 +0,0 @@
|
|||||||
../common/not_supported.sh
|
|
72
src/tm_mad/fs_lvm/resize
Normal file
72
src/tm_mad/fs_lvm/resize
Normal file
@ -0,0 +1,72 @@
|
|||||||
|
#!/bin/bash
|
||||||
|
|
||||||
|
# -------------------------------------------------------------------------- #
|
||||||
|
# Copyright 2002-2018, OpenNebula Project, OpenNebula Systems #
|
||||||
|
# #
|
||||||
|
# Licensed under the Apache License, Version 2.0 (the "License"); you may #
|
||||||
|
# not use this file except in compliance with the License. You may obtain #
|
||||||
|
# a copy of the License at #
|
||||||
|
# #
|
||||||
|
# http://www.apache.org/licenses/LICENSE-2.0 #
|
||||||
|
# #
|
||||||
|
# Unless required by applicable law or agreed to in writing, software #
|
||||||
|
# distributed under the License is distributed on an "AS IS" BASIS, #
|
||||||
|
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. #
|
||||||
|
# See the License for the specific language governing permissions and #
|
||||||
|
# limitations under the License. #
|
||||||
|
#--------------------------------------------------------------------------- #
|
||||||
|
|
||||||
|
# resize image size vmid
|
||||||
|
|
||||||
|
SRC=$1
|
||||||
|
SIZE=$2
|
||||||
|
VM_ID=$3
|
||||||
|
|
||||||
|
if [ -z "${ONE_LOCATION}" ]; then
|
||||||
|
TMCOMMON=/var/lib/one/remotes/tm/tm_common.sh
|
||||||
|
else
|
||||||
|
TMCOMMON=$ONE_LOCATION/var/remotes/tm/tm_common.sh
|
||||||
|
fi
|
||||||
|
|
||||||
|
DRIVER_PATH=$(dirname $0)
|
||||||
|
|
||||||
|
source $TMCOMMON
|
||||||
|
source ${DRIVER_PATH}/../../datastore/libfs.sh
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Set dst path and dir
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
SRC_PATH=`arg_path $SRC`
|
||||||
|
SRC_HOST=`arg_host $SRC`
|
||||||
|
SRC_DIR=`dirname $SRC_PATH`
|
||||||
|
|
||||||
|
DS_SYS_ID=$(echo $SRC_DIR | $AWK -F '/' '{print $(NF-1)}')
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Get Image information
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
DISK_ID=$(basename ${SRC_PATH} | cut -d. -f2)
|
||||||
|
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
# Resize disk
|
||||||
|
#-------------------------------------------------------------------------------
|
||||||
|
|
||||||
|
LV_NAME="lv-one-$VM_ID-$DISK_ID"
|
||||||
|
VG_NAME="vg-one-$DS_SYS_ID"
|
||||||
|
DEV="/dev/${VG_NAME}/${LV_NAME}"
|
||||||
|
|
||||||
|
# Execute lvextend with a lock in the frontend
|
||||||
|
RESIZE_CMD=$(cat <<EOF
|
||||||
|
set -e -o pipefail
|
||||||
|
$SUDO $SYNC
|
||||||
|
$SUDO $LVSCAN
|
||||||
|
$SUDO $LVEXTEND -L${SIZE}M "$DEV"
|
||||||
|
EOF
|
||||||
|
)
|
||||||
|
|
||||||
|
LOCK="tm-fs_lvm-${DS_SYS_ID}.lock"
|
||||||
|
exclusive "${LOCK}" 120 ssh_exec_and_log "$SRC_HOST" "$RESIZE_CMD" \
|
||||||
|
"Error resizing LV named $LV_NAME"
|
||||||
|
exit 0
|
Loading…
Reference in New Issue
Block a user