Readd zpool_clear_label() from OpenSolaris
[zfs.git] / scripts / zpool-config / dm0-raid0.sh
1 #!/bin/bash
2 #
3 # Four disk Raid-0 DM in a single Raid-0 Configuration
4 #
5
6 PVCREATE=${PVCREATE:-/sbin/pvcreate}
7 PVREMOVE=${PVREMOVE:-/sbin/pvremove}
8 PVDEVICES=${PVDEVICES:-"/dev/sd[abcd]"}
9
10 VGCREATE=${VGCREATE:-/sbin/vgcreate}
11 VGREMOVE=${VGREMOVE:-/sbin/vgremove}
12 VGNAME=${VGNAME:-"vg_tank"}
13
14 LVCREATE=${LVCREATE:-/sbin/lvcreate}
15 LVREMOVE=${LVREMOVE:-/sbin/lvremove}
16 LVNAME=${LVNAME:-"lv_tank"}
17 LVSTRIPES=${LVSTRIPES:-4}
18 LVSIZE=${LVSIZE:-32G}
19
20 DEVICES="/dev/${VGNAME}/${LVNAME}"
21
22 zpool_dm_destroy() {
23         msg ${LVREMOVE} -f ${VGNAME}/${LVNAME}
24         ${LVREMOVE} -f ${VGNAME}/${LVNAME} >/dev/null
25
26         msg ${VGREMOVE} -f ${VGNAME}
27         ${VGREMOVE} -f ${VGNAME} >/dev/null
28
29         msg ${PVREMOVE} ${PVDEVICES}
30         ${PVREMOVE} ${PVDEVICES} >/dev/null
31 }
32
33 zpool_create() {
34         # Remove EFI labels which cause pvcreate failure
35         for DEVICE in ${PVDEVICES}; do
36                 dd if=/dev/urandom of=${DEVICE} bs=1k count=32 &>/dev/null
37         done
38
39         msg ${PVCREATE} -f ${PVDEVICES}
40         ${PVCREATE} -f ${PVDEVICES} >/dev/null || exit 1
41
42         msg ${VGCREATE} ${VGNAME} ${PVDEVICES}
43         ${VGCREATE} ${VGNAME} ${PVDEVICES} >/dev/null || exit 2
44
45         msg ${LVCREATE} --size=${LVSIZE} --stripes=${LVSTRIPES} \
46                 --name=${LVNAME} ${VGNAME}
47         ${LVCREATE} --size=${LVSIZE} --stripes=${LVSTRIPES} \
48                 --name=${LVNAME} ${VGNAME} >/dev/null || exit 3
49
50         msg ${ZPOOL} create ${FORCE_FLAG} ${ZPOOL_NAME} ${DEVICES}
51         ${ZPOOL} create ${FORCE_FLAG} ${ZPOOL_NAME} \
52                 ${DEVICES} || (zpool_dm_destroy && exit 4)
53 }
54
55 zpool_destroy() {
56         msg ${ZPOOL} destroy ${ZPOOL_NAME}
57         ${ZPOOL} destroy ${ZPOOL_NAME}
58
59         zpool_dm_destroy
60 }