[Ovirt-devel] [PATCH node] RESEND: [PATCH node 1/3] enables ability for a common shared root

Mike Burns mburns at redhat.com
Wed Apr 7 14:28:30 UTC 2010


On Wed, 2010-04-07 at 10:15 -0400, Mike Burns wrote:
> From: Joey Boggs <jboggs at redhat.com>
> 
> ---
>  scripts/ovirt-config-boot    |   13 ++++++-
>  scripts/ovirt-config-storage |   80 +++++++++++++++++++++++++-----------------
>  2 files changed, 60 insertions(+), 33 deletions(-)
> 
> diff --git a/scripts/ovirt-config-boot b/scripts/ovirt-config-boot
> index 72bcd9b..9593905 100755
> --- a/scripts/ovirt-config-boot
> +++ b/scripts/ovirt-config-boot
> @@ -29,6 +29,12 @@ ovirt_boot_setup() {
>      local disk2
>      local partN=-1
>      log "installing the image."
> +
> +    if [ "$OVIRT_ROOT_INSTALL" == "n" ]; then
> +        log "done."
> +        return
> +    fi
> +
>      local found_boot=false
>      if findfs LABEL=Boot 2>&1 >/dev/null ; then
>          found_boot=true
> @@ -213,7 +219,12 @@ if [ -z "$doreboot" ]; then
>  fi
> 
>  start_log
> -ovirt_boot_setup "$live" "$bootparams"
> +if [ "$OVIRT_ROOT_INSTALL" =="n" ]; then
> +    log "done."
> +    return
> +else
> +    ovirt_boot_setup "$live" "$bootparams"
> +fi
>  rc=$?
>  if [ $rc -eq 0 -a "$doreboot" = "yes" ]; then
>      disable_firstboot
> diff --git a/scripts/ovirt-config-storage b/scripts/ovirt-config-storage
> index ce9707c..35cb340 100755
> --- a/scripts/ovirt-config-storage
> +++ b/scripts/ovirt-config-storage
> @@ -358,6 +358,22 @@ do_configure()
>          printf "\n\nPlease select the disk to use for the Root.\n\n"
>          ROOTDRIVE=$(get_dev_name) || return 0
>          get_drive_size "$ROOTDRIVE" ROOTDRIVESPACE
> +        if ask_yes_or_no "Will Root be shared with other nodes ([Y]es/[N]o)?"; then
> +            OVIRT_SHARED_ROOT="y"
> +            if ask_yes_or_no "Partition and install Root?"; then
> +                OVIRT_ROOT_INSTALL="y"
> +            else
> +                OVIRT_ROOT_INSTALL="n"
> +            fi
> +        else
> +            OVIRT_SHARED_ROOT="n"
> +            OVIRT_ROOT_INSTALL="y"
> +        fi
> +
> +    augtool <<EOF
> +        set /files$OVIRT_DEFAULTS/OVIRT_SHARED_ROOT $OVIRT_SHARED_ROOT
> +        set /files$OVIRT_DEFAULTS/OVIRT_ROOT_INSTALL $OVIRT_ROOT_INSTALL
> +EOF
> 
>          printf "\n\nPlease select the disk to use for the HostVG.\n\n"
>          HOSTVGDRIVE=$(get_dev_name) || return 0
> @@ -403,6 +419,8 @@ do_configure()
>      if [ "$OVIRT_ISCSI_ENABLED" == "y" ]; then
>          partlist="boot" # swap root config logging data"
>          local space_left=$BOOTDRIVESPACE
> +    elif [ "$OVIRT_ROOT_INSTALL" == "n" ]; then
> +        partlist="swap config logging data"
>      else
>          partlist="swap root config logging data"
>      fi
> @@ -558,7 +576,7 @@ check_existing_hostvg()
>  # - remove LVM volumes and groups
>  wipe_lvm_on_disk()
>  {
> -    local dev=${1-$HOSTVGDRIVE}
> +    local dev=${1-"$HOSTVGDRIVE"}
>      unmount_logging
>      local part_delim="p"
>      if [[ "$dev" =~ "/dev/sd" ]]; then
> @@ -605,8 +623,8 @@ perform_partitioning()
>      unmount_config /etc/default/ovirt
> 
>      log "Removing old LVM partitions"
> -    wipe_lvm_on_disk $HOSTVGDRIVE
> -    wipe_lvm_on_disk $ROOTDRIVE
> +    wipe_lvm_on_disk "$HOSTVGDRIVE"
> +    wipe_lvm_on_disk "$ROOTDRIVE"
> 
>      # begin critical section
>      set -e
> @@ -636,37 +654,33 @@ perform_partitioning()
>          return
>      fi
> 
> -    log "Starting partitioning of $ROOTDRIVE"
> -    log "Partitioning drive: $ROOTDRIVE"
> - # FIXME: save a backup copy, just in case?
> -    log "Wiping old boot sector"
> -    dd if=/dev/zero of="$ROOTDRIVE" bs=1024K count=1
> -    reread_partitions "$ROOTDRIVE"
> -    partprobe -s "$ROOTDRIVE"
> -    log "Labeling Drive: $ROOTDRIVE"
> -    parted "$ROOTDRIVE" -s "mklabel ${LABEL_TYPE}"
> +    if [ "OVIRT_ROOT_INSTALL" == "y" ]; then
> +        log "Starting partitioning of $ROOTDRIVE"
> +        log "Partitioning drive: $ROOTDRIVE"
> +     # FIXME: save a backup copy, just in case?
> +        log "Wiping old boot sector"
> +        dd if=/dev/zero of="$ROOTDRIVE" bs=1024K count=1
> +        reread_partitions "$ROOTDRIVE"
> +        partprobe -s "$ROOTDRIVE"
> +        log "Labeling Drive: $ROOTDRIVE"
> +        parted "$ROOTDRIVE" -s "mklabel ${LABEL_TYPE}"
> +
> +        log "Creating Root and RootBackup Partitions"
> +        let RootBackup_end=${ROOT_SIZE}*2
> +        parted $ROOTDRIVE -s "mkpart primary ext2 0M ${ROOT_SIZE}M"
> +        parted $ROOTDRIVE -s "mkpart primary ext2 ${ROOT_SIZE}M ${RootBackup_end}M"
> +        # sleep to ensure filesystems are created before continuing
> +        sleep 10


> +        mke2fs ${ROOTDRIVE}1 -L Root
> +        mke2fs ${ROOTDRIVE}2 -L RootBackup
> +        tune2fs -c 0 -i 0 ${ROOTDRIVE}1
> +        tune2fs -c 0 -i 0 ${ROOTDRIVE}2

These 4 lines need to be changed.  For multipath and cciss devices, the
partitions are like ${ROOTDRIVE}p1.  

-        mke2fs ${ROOTDRIVE}1 -L Root
-        mke2fs ${ROOTDRIVE}2 -L RootBackup
-        tune2fs -c 0 -i 0 ${ROOTDRIVE}1
-        tune2fs -c 0 -i 0 ${ROOTDRIVE}2
+        reread_partitions "$ROOTDRIVE"
+        partroot="${ROOTDRIVE}1"
+        partrootbackup="${ROOTDRIVE}2"
+        if [ ! -e "$partroot" ]; then
+            partroot="${ROOTDRIVE}p1"
+            partrootbackup="${ROOTDRIVE}p2"
+        fi
+        mke2fs "$partroot}" -L Root
+        mke2fs "${partrootbackup}" -L RootBackup
+        tune2fs -c 0 -i 0 "${partroot}"
+        tune2fs -c 0 -i 0 "${partrootbackup}"


> +    fi
> 
>      if [ "$ROOTDRIVE" != "$HOSTVGDRIVE" ]; then
>          log "Labeling Drive: $HOSTVGDRIVE"
>          parted "$HOSTVGDRIVE" -s "mklabel ${LABEL_TYPE}"
>      fi
> -    log "Creating Root and RootBackup Partitions"
> -    let RootBackup_end=${ROOT_SIZE}*2
> -    parted $ROOTDRIVE -s "mkpart primary ext2 0M ${ROOT_SIZE}M"
> -    parted $ROOTDRIVE -s "mkpart primary ext2 ${ROOT_SIZE}M ${RootBackup_end}M"
> -    reread_partitions $ROOTDRIVE
> -    partroot="${ROOTDRIVE}1"
> -    partrootbackup="${ROOTDRIVE}2"
> -    if [ ! -e "$partroot" ]; then
> -        partroot="${ROOTDRIVE}p1"
> -        partrootbackup="${ROOTDRIVE}p2"
> -    fi
> -    # sleep to ensure filesystems are created before continuing
> -    sleep 10
> -    mke2fs "${partroot}" -L Root
> -    mke2fs "${partrootbackup}" -L RootBackup
> -    tune2fs -c 0 -i 0 "${partroot}"
> -    tune2fs -c 0 -i 0 "${partrootbackup}"
>      log "Creating LVM partition"
> 
>      if [ "$ROOTDRIVE" == "$HOSTVGDRIVE" ]; then
> @@ -683,9 +697,11 @@ perform_partitioning()
>      reread_partitions "$HOSTVGDRIVE"
> 
>      # sync GPT to the legacy MBR partitions
> -    if [ "gpt" == "$LABEL_TYPE" ]; then
> -        log "Running gptsync to create legacy mbr"
> -        gptsync "$ROOTDRIVE"
> +    if [ "${OVIRT_INSTALL_ROOT}" == "y" ]; then
> +        if [ "gpt" == "$LABEL_TYPE" ]; then
> +            log "Running gptsync to create legacy mbr"
> +            gptsync "$ROOTDRIVE"
> +        fi
>      fi
> 
>      partpv="${HOSTVGDRIVE}${hostvgpart}"





More information about the ovirt-devel mailing list