This is an old revision of the document!


Migrating Debian GNU/Linux 4.0 (etch) or later to an AoE target

You can either work witha an installation

  1. that is running off a physical disk on a client machine or
  2. a loopback-mounted disk image running as a chroot(8) environment

Install the aoetools package and a kernel image that includes the aoe driver, i.e. one of the linux-image-2.6.18-* drivers that ship with Debian/etch.

Create two scripts as shown below

  • /etc/initramfs-tools/hooks/aoetools will copy the aoe kernel module and /sbin/aoe-discover to the initial ramdisk.
  • /etc/initramfs-tools/scripts/local-top/aoetools is copied to the ram disk and run at boot-time, just before the root filesystem is mounted. If the root device string looks like an AoE target, it brings up all recognized Ethernet interfaces and activates the AoE driver.

After you have made sure that /etc/initramfs-tools/initramfs.conf contains the line

 BUSYBOX=y

you can update the initial ramdisk:

 # update-initramfs -u -k all

FIXME Create/update /etc/fstab

FIXME Create/update /boot/grub/menu.lst

If the modifications were applied to a physical disk on the client machine, you can now transfer the contents of your physical disk to the SAN target.

If the image you wish to export to client systems was modified directly,, just make the contents of that image available.

Hints

  • If the system hangs before the root device has been mounted, passing break=mount on the command line will spawn a shell before `scripts/local-top/aoetools' is run. This should allow for further debugging.

Configuration files

/etc/initramfs-tools/hooks/aoetools

#!/bin/sh
 
set  -e
 
PREREQ=""
 
prereqs()
{
	echo "$PREREQ"
}
 
case $1 in
prereqs)
	prereqs
	exit 0
	;;
esac
 
. /usr/share/initramfs-tools/hook-functions
 
[ -x /sbin/aoe-discover ] && copy_exec /sbin/aoe-discover /sbin
manual_add_modules aoe

/etc/initramfs-tools/scripts/local-top/aoetools

#!/bin/sh
 
set -e
 
PREREQ=""
 
prereqs()
{
	echo "$PREREQ"
}
 
case $1 in
prereqs)
	prereqs
	exit 0
	;;
esac
 
case $ROOT in
/dev/etherd/e*)
	INTERFACES=`awk -F: '/eth[0-9]*:/ { print $1 }' < /proc/net/dev`
	for i in $INTERFACES; do
		echo Bringing up interface $i for AoE
		ifconfig $i up
	done
	sleep 5
	modprobe aoe
	aoe-discover
	;;
esac

QR Code
QR Code debian_aoe_migrate (generated for current page)