Skip to content
GitLab
Projects
Groups
Snippets
Help
Loading...
Help
What's new
7
Help
Support
Community forum
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
Open sidebar
emulab
emulab-devel
Commits
31f8ea31
Commit
31f8ea31
authored
Mar 14, 2015
by
Mike Hibler
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
Integrate zapdisk into the frisbee MFS.
parent
e2a18de5
Changes
5
Hide whitespace changes
Inline
Side-by-side
Showing
5 changed files
with
80 additions
and
34 deletions
+80
-34
clientside/os/GNUmakefile.in
clientside/os/GNUmakefile.in
+12
-6
clientside/os/zapdisk/GNUmakefile.in
clientside/os/zapdisk/GNUmakefile.in
+4
-1
clientside/tmcc/freebsd/rc.frisbee
clientside/tmcc/freebsd/rc.frisbee
+14
-5
clientside/tmcc/linux-ms/mfs/rc.frisbee
clientside/tmcc/linux-ms/mfs/rc.frisbee
+16
-5
clientside/tmcc/linux/rc.frisbee
clientside/tmcc/linux/rc.frisbee
+34
-17
No files found.
clientside/os/GNUmakefile.in
View file @
31f8ea31
...
...
@@ -25,6 +25,7 @@ TESTBED_SRCDIR = @top_srcdir@
OBJDIR = @top_builddir@
SUBDIR = $(subst $(TESTBED_SRCDIR)/,,$(SRCDIR))
SYSTEM := $(shell uname -s)
CBINDIR = $(DESTDIR)$(CLIENT_BINDIR)
LBINDIR = $(DESTDIR)/usr/local/bin
LSBINDIR = $(DESTDIR)/usr/local/sbin
SYSTEM := $(shell uname -s)
...
...
@@ -86,7 +87,6 @@ endif
mfs:
$(MAKE) -C growdisk client
$(MAKE) -C zapdisk mfs
$(MAKE) -C growdisk client
$(MAKE) -C imagezip client
$(MAKE) -C frisbee.redux client
...
...
@@ -110,25 +110,31 @@ distclean: subdir-distclean
frisbee-mfs:
$(MAKE) -C growdisk client
$(MAKE) -C zapdisk mfs
$(MAKE) -C frisbee.redux client
frisbee-mfs-install:
ifeq ($(SYSTEM),FreeBSD)
CLIENT_BINDIR=/etc/testbed $(MAKE) -e -C growdisk client-install
CLIENT_BINDIR=/etc/testbed $(MAKE) -e -C frisbee.redux client-install
CLIENT_BINDIR=/etc/testbed $(MAKE) -e -C growdisk client-install
CLIENT_BINDIR=/etc/testbed $(MAKE) -e -C zapdisk frisbee-mfs-install
else
CLIENT_BINDIR=/usr/local/bin $(MAKE) -e -C growdisk client-install
CLIENT_BINDIR=/usr/local/bin $(MAKE) -e -C frisbee.redux client-install
$(MAKE) -C growdisk client-install
$(MAKE) -C zapdisk frisbee-mfs-install
rm -f $(CBINDIR)/frisbee $(CBINDIR)/frisupload
endif
mfs-install:
$(MAKE) -C zapdisk mfs-install
$(MAKE) -C imagezip client-install
CLIENT_BINDIR=/usr/local/bin $(MAKE) -e -C growdisk client-install
CLIENT_BINDIR=/usr/local/bin $(MAKE) -e -C frisbee.redux client-install
$(MAKE) -C frisbee.redux client-install
$(MAKE) -C growdisk client-install
$(MAKE) -C zapdisk mfs-install
$(INSTALL_PROGRAM) $(SRCDIR)/create-image $(LBINDIR)/
$(INSTALL_PROGRAM) $(SRCDIR)/create-versioned-image $(LBINDIR)/
$(INSTALL_PROGRAM) $(SRCDIR)/create-swapimage $(LBINDIR)/
rm -f $(CBINDIR)/frisbee $(CBINDIR)/frisupload
rm -f $(CBINDIR)/imagezip $(CBINDIR)/imageunzip $(CBINDIR)/imagedump
newnode-mfs: mfs
newnode-mfs-install: mfs-install
...
...
clientside/os/zapdisk/GNUmakefile.in
View file @
31f8ea31
...
...
@@ -67,11 +67,14 @@ $(PARTLIBS):
install:
mfs: zapdisk
mfs frisbee-
mfs: zapdisk
mfs-install: mfs
$(INSTALL_PROGRAM) -m 700 -s zapdisk$(EXE) $(CBINDIR)/zapdisk$(EXE)
$(INSTALL_PROGRAM) -m 700 $(SRCDIR)/diskzap $(LBINDIR)/diskzap
frisbee-mfs-install: frisbee-mfs
$(INSTALL_PROGRAM) -m 700 -s zapdisk$(EXE) $(CBINDIR)/zapdisk$(EXE)
clean:
rm -f *.o zapdisk zapdisk.debug
clientside/tmcc/freebsd/rc.frisbee
View file @
31f8ea31
...
...
@@ -162,6 +162,14 @@ find_disks() {
zapsuperblocks
()
{
_DSK
=
$1
echo
"Invalidating old potential superblocks on
$_DSK
"
if
[
-x
"
$BINDIR
/zapdisk"
]
;
then
$BINDIR
/zapdisk
-v
-SZ
/dev/
$_DSK
return
fi
# XXX fall back to the old way
#
# Note we are not overly concerned about the consequences of misparsing
# the fdisk output. If we whack random blocks, it doesn't hurt anything.
...
...
@@ -558,12 +566,13 @@ case $STATUS in
disks
=
`
find_disks
`
for
d
in
$disks
;
do
#[ $d = $DISK ] && continue
mount |
grep
"^/dev/
$d
"
>
/dev/null
&&
continue
zapsuperblocks
$d
echo
"Invalidating MBR/GPT on
$d
"
if
[
-x
/sbin/gpart
]
;
then
gpart destroy
-F
$d
mount |
grep
"^/dev/
$d
"
>
/dev/null
&&
continue
if
[
-x
"
$BINDIR
/zapdisk"
]
;
then
echo
"Invalidating superblocks and MBR/GPT on
$d
"
$BINDIR
/zapdisk
-v
-SBZ
/dev/
$d
else
zapsuperblocks
$d
echo
"Invalidating MBR/GPT on
$d
"
dd
if
=
/dev/zero
of
=
/dev/
$d
bs
=
512
count
=
16
fi
done
...
...
clientside/tmcc/linux-ms/mfs/rc.frisbee
View file @
31f8ea31
...
...
@@ -207,9 +207,15 @@ zapsuperblocks()
local
disk
=
${
1
##*/
}
echo
"Invalidating old potential superblocks on
$disk
"
if
[
-x
"
$BINDIR
/zapdisk"
]
;
then
$BINDIR
/zapdisk
-v
-SZ
/dev/
$disk
return
fi
# XXX fall back to the old way
partitions
=
`
echo
/sys/block/
$disk
/
$disk
*
2>/dev/null
`
for
part
in
$partitions
;
do
dd
if
=
/dev/zero
of
=
/dev/
${
part
##*/
}
bs
=
512
count
=
16
>
/dev/null 2>&1
dd
if
=
/dev/zero
of
=
/dev/
${
part
##*/
}
bs
=
512
count
=
16
>
/dev/null 2>&1
done
return
0
...
...
@@ -567,10 +573,15 @@ case $STATUS in
for
d
in
$disks
;
do
#[ $d = $DISK ] && continue
mount |
grep
"^/dev/
$d
"
>
/dev/null
&&
continue
zapsuperblocks
$d
echo
"Invalidating MBR on
$d
"
sgdisk
-Z
/dev/
$d
>
/dev/null 2>&1
dd
if
=
/dev/zero
of
=
/dev/
$d
bs
=
512
count
=
16
if
[
-x
"
$BINDIR
/zapdisk"
]
;
then
echo
"Invalidating superblocks and MBR/GPT on
$d
"
$BINDIR
/zapdisk
-v
-SBZ
/dev/
$d
else
zapsuperblocks
$d
echo
"Invalidating MBR/GPT on
$d
"
sgdisk
-Z
/dev/
$d
>
/dev/null 2>&1
dd
if
=
/dev/zero
of
=
/dev/
$d
bs
=
512
count
=
16
fi
done
#
...
...
clientside/tmcc/linux/rc.frisbee
View file @
31f8ea31
#!/bin/sh
#
# Copyright (c) 2000-201
4
University of Utah and the Flux Group.
# Copyright (c) 2000-201
5
University of Utah and the Flux Group.
#
# {{{EMULAB-LICENSE
#
...
...
@@ -189,9 +189,15 @@ zapsuperblocks()
local
disk
=
${
1
##*/
}
echo
"Invalidating old potential superblocks on
$disk
"
if
[
-x
"
$BINDIR
/zapdisk"
]
;
then
$BINDIR
/zapdisk
-v
-SZ
/dev/
$disk
return
fi
# XXX fall back to the old way
partitions
=
`
echo
/sys/block/
$disk
/
$disk
*
2>/dev/null
`
for
part
in
$partitions
;
do
dd
if
=
/dev/zero
of
=
/dev/
${
part
##*/
}
bs
=
512
count
=
16
>
/dev/null 2>&1
dd
if
=
/dev/zero
of
=
/dev/
${
part
##*/
}
bs
=
512
count
=
16
>
/dev/null 2>&1
done
return
0
...
...
@@ -575,21 +581,32 @@ FRISBEE_OPTS="$FRISBEE_OPTS -k $MAXSOCKBUF"
# Wipe the MBR and partition boot blocks on all disks if reloading
case
$STATUS
in
*
ALLOCATED
=
emulab-ops/reloading
*
)
disks
=
`
find_disks
`
for
d
in
$disks
;
do
#[ $d = $DISK ] && continue
mount |
grep
"^/dev/
$d
"
>
/dev/null
&&
continue
zapsuperblocks /dev/
$d
echo
"Invalidating MBR on /dev/
$d
"
dd
if
=
/dev/zero
of
=
/dev/
$d
bs
=
512
count
=
16
done
# XXX tmp, gather HW info (including disk speed tests)
if
[
-x
$BINDIR
/rc.nodecheck
]
;
then
$BINDIR
/rc.nodecheck boot
fi
;;
*
ALLOCATED
=
emulab-ops/reloading
*
)
disks
=
`
find_disks
`
for
d
in
$disks
;
do
#[ $d = $DISK ] && continue
mount |
grep
"^/dev/
$d
"
>
/dev/null
&&
continue
if
[
-x
"
$BINDIR
/zapdisk"
]
;
then
echo
"Invalidating superblocks and MBR/GPT on
$d
"
$BINDIR
/zapdisk
-v
-SBZ
/dev/
$d
else
zapsuperblocks /dev/
$d
echo
"Invalidating MBR/GPT on /dev/
$d
"
# XXX not in the Linux MFS yet
#sgdisk -Z /dev/$d >/dev/null 2>&1
dd
if
=
/dev/zero
of
=
/dev/
$d
bs
=
512
count
=
16
fi
done
#
# If we have nodecheck, run it. This allows us to both collect HW info
# (if nodecheck "collect" is enabled in the DB) and to run a destructive
# disk write speed test (as part of a nodecheck "check" operation).
#
if
[
-x
$BINDIR
/rc.nodecheck
]
;
then
$BINDIR
/rc.nodecheck boot
fi
;;
esac
#
...
...
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
.
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment