Kód: Vybrat vše
newfs /dev/rdsk/c7t0d0s7 #vytvoření filesystemu
fstyp /dev/rdsk/c7t0d0s7 #kontrola, že se vytvořil ufs filesystem
# ufs
mkdir /data #vytvoření adresáře pro mount
mount /dev/dsk/c7t0d0s7 /data/ #mount disku
cat /dev/urandom > /data/file #random file pro pozdější porovnávání
fssnap -o bs=/var/tmp/souborvpozadi$$ /data #vytvoření snapshotu ;; $$ vypíše PID aktuálního shellu
# /dev/fssnap/0
fssnap –i #vypíše stav snapshotů
# 0 /data
mkdir /datasnapshot #vytvoření adresáře pro mount
mount -o ro /dev/fssnap/0 /datasnapshot/ #mount snapshotu
ls -l /var/tmp
du -sk /datasnapshot/ /data #vypsání disk-usage (-s summarize, -k block-size=1K) -> mělo by se rovnat
cat /dev/urandom > /data/file #přepíšeme soubor
du -sk /datasnapshot/ /data #rozdílné velikosti
tar -cvfz backup.tgz /datasnapshot/ #archivace
umount /datasnapshot/ #odmountování snapshotu
fssnap -d /dev/fssnap/0 #zrušení snapshotu
# Deleted snapshot 0.
rm /var/tmp/souborvpozadi
2/ Napište skript na automatickou archivaci filesystému (UFS) pomocí snapshotu.
Skript z Fit-Wiki (rozsáhlejší, včetně logu)...
Kód: Vybrat vše
#!/bin/bash
VERBOSE=1
clean () {
log "Cleaning..."
umount "$TMP_MOUNT"
fssnap -d "$SNAPFILE" >/dev/null
rm -rf "$TMP_FILE" "$TMP_MOUNT"
}
#Displays error messages
err () {
printf "%s [Error]: %s\n" "$0" "$*" >&2
exit 1
}
#Displays log messages if VERBOSE >= 1
log () {
((VERBOSE)) && printf "%s [Info]: %s\n" "$0" "$*"
}
#Directory tests
[[ -d "$1" ]] || err "'$1' is not a directory!"
[[ -w "$1" ]] || err "Cannot write to '$1' directory!"
log "Checking for '/backup' directory..."
[[ -d "/backup" ]] || mkdir "/backup" || err "Cannot create '/backup' directory!"
[[ -w "/backup" ]] || err "Cannot write to '/backup' directory!"
#Cleanup at script exit
trap 'clean' EXIT
#Resources
TMP_FILE="backing_store$$"
TMP_MOUNT=$(mktemp -d) || err "Cannot create temporary directory!"
BACKUP_NAME=snapshot_$(date +"%y-%m-%d_%H-%M-%S")
#Snapshot
log "Creating snapshot..."
SNAPFILE=$(fssnap -o bs="$TMP_FILE" "$1") || err 'fssnap'
#Mount filesystem
mount -o ro "$SNAPFILE" "$TMP_MOUNT" || err "Cannot mount '$SNAPFILE' to '$TMP_MOUNT'!"
#Create backup to /backup
log "Creating backup..."
(
cd /tmp/
tar -cvzf /backup/"$BACKUP_NAME".tgz "${TMP_MOUNT##*/}" >/dev/null
)
printf "$0 [SUCCES]: Backup stored in: '%s'\n" "/backup/$BACKUP_NAME.tgz"
Kód: Vybrat vše
#!/bin/bash
#Testy adresaru a moznosti zapisu:
[[ -d "$1" ]] || exit 1
[[ -w "$1" ]] || exit 2
[[ `df -h | grep '/data' | wc -l` -eq 1 ]] || exit 3
[[ -d "/backup" ]] || mkdir "/backup" || exit 4
[[ -w "/backup" ]] || exit 5
#Priprava promennych:
TMP_FILE="backing_store$$"
SNAPFILE=$(fssnap -o bs="$TMP_FILE" "$1")
TMP_MOUNT=$(mktemp -d)
BACKUP_NAME=snapshot_$(date +"%y-%m-%d_%H-%M-%S")
#Mount snapshotu:
mount -o ro "$SNAPFILE" "$TMP_MOUNT"
#Vytvoreni zalohy:
tar -cvzf /backup/"$BACKUP_NAME".tgz "${TMP_MOUNT}/" >/dev/null
#Vycisteni:
umount "$TMP_MOUNT"
fssnap -d "$SNAPFILE" >/dev/null
rm -rf "$TMP_FILE" "$TMP_MOUNT"
3/ Rozdělení disku na slices
Kód: Vybrat vše
dfshares sol_uc #info o sol_uc
df -k /dev/rdsk/c7t0d0 #file-system disk space usage (-k block-size=1K)
prtvtoc /dev/rdsk/c7t0d0s2 #info o disku
cp /net/sol_uc/share/disk.vtoc . #zkopírování souboru k sobě
fmthard -s disk.vtoc /dev/rdsk/c7t0d0s2 #DANGER: Chyba nejspíše povede k nutnosti reinstalace image.
4/ Nainstalujte „Solaris Volume Manager“
Kód: Vybrat vše
# Oracle stránka k tomu – dá se třeba podívat, co to vypisuje… https://blogs.oracle.com/mandalika/entry/solaris_volume_manager_svm_on
export http_proxy=http://10.0.1.13:3128
pkg info svm
pkg info -r svm # -r remote
pkg install svm # instalace
update_drv -f md # update atributu instalovanych driveru, md - metadevice
5/ + 6/
Kód: Vybrat vše
#Metadatabáze:
metadb -a -f -c3 c7t0d0s5 # add, force, numb_of_replicas=3
metadb #stav metadatabaze
metastat #stav vsech vytvorenych metadevice… umount vsechno !
#Concat virtual disk, Stripe virtual disk:
metainit d0 2 1 c7t0d0s4 1 c7t0d0s6 #toto je concat (device d0)
metainit d1 1 2 c7t0d0s3 c7t0d0s7 #toto je stripe
metastat # stav vsech vytvorenych metadevice
newfs /dev/md/rdsk/d0 #vytvoreni filesystemu na device, ktery vznikl
newfs /dev/md/rdsk/d1 #vytvoreni filesystemu na device, ktery vznikl
mkdir /concat #vytvoreni adresáře pro mount
mkdir /stripe #vytvoreni adresáře pro mount
mount /dev/md/dsk/d1 /stripe
mount /dev/md/dsk/d0 /concat
#První část příkladu 6/
time dd if=/dev/zero of=/concat/file bs=1024 count=1024000
#real 0m11.276s
#user 0m0.275s
#sys 0m3.658s
time dd if=/dev/zero of=/stripe/file bs=1024 count=1024000
#real 0m15.304s
#user 0m0.282s
#sys 0m3.942s
#Zrušení předchozího pro možnost pokračování – vytvoření RAID1
df -h
umount /concat
umount /stripe
metaclear d0 d1
#d0: Concat/Stripe is cleared
#d1: Concat/Stripe is cleared
metastat
#Zrcadlený disk (RAID1):
metainit d11 1 1 c7t0d0s6 # nelze primo, musi se nad metadevice
metainit d12 1 1 c7t0d0s7
metainit d10 -m d11 # vytvoreni RAID 1 (degenerovane, zatim pouze 1 komponenta)
metattach d10 d12 # pripojení 2. komponenty
metastat
newfs /dev/md/rdsk/d10
mkdir /mirror
mount /dev/md/dsk/d10 /mirror
df -h
#Druhá část příkladu 6/
time dd if=/dev/zero of=/mirror/file bs=1024 count=1024000
#real 0m31.417s
#user 0m0.282s
#sys 0m3.746s
metadb #vypise metadatabase
metaclear d0 d1 d11 d12
metadb -d -f /dev/dsk/c7t0d0s5
metadb #melo by to byt prazdne