Difference between revisions of "ZFS Appliance"
From dbawiki
(Created page with "===List the sizes and available space in all filesystems on ZFS appliance=== * [https://docs.oracle.com/cd/E51475_01/html/E52872/user_interface__cli__scripting__interacting_wi...") |
(→Oracle Snap Management Utility (SMU)) |
||
| (3 intermediate revisions by the same user not shown) | |||
| Line 27: | Line 27: | ||
} | } | ||
. | . | ||
| + | </pre> | ||
| + | and the same information but "machine readable" sizes | ||
| + | <pre> | ||
| + | script | ||
| + | fmt = '%-40s %-15s %-15s\n'; | ||
| + | printf(fmt, 'SHARE', 'USED', 'AVAILABLE'); | ||
| + | run('cd /'); | ||
| + | run('shares'); | ||
| + | pools = choices('pool'); | ||
| + | for (p = 0; p < pools.length; p++) { | ||
| + | set('pool', pools[p]); | ||
| + | projects = list(); | ||
| + | for (i = 0; i < projects.length; i++) { | ||
| + | run('select ' + projects[i]); | ||
| + | shares = list(); | ||
| + | for (j = 0; j < shares.length; j++) { | ||
| + | run('select ' + shares[j]); | ||
| + | share = pools[p] + ':' + projects[i] + '/' + shares[j]; | ||
| + | printf(fmt, share, get('space_data'), | ||
| + | get('space_available')); | ||
| + | run('cd ..'); | ||
| + | } | ||
| + | run('cd ..'); | ||
| + | } | ||
| + | } | ||
| + | . | ||
| + | </pre> | ||
| + | ===Create a pool=== | ||
| + | <pre> | ||
| + | [sudo] zfs create datapool mirror /dev/sdc /dev/sdd | ||
| + | [sudo] zfs list | ||
| + | </pre> | ||
| + | ===Create a ZFS filesystem / dataset in the pool=== | ||
| + | <pre> | ||
| + | [sudo] zfs create datapool/scripts -o mountpoint=/scripts</pre> | ||
| + | [sudo] zfs list -r datapool | ||
| + | ===Create a snapshot of the filesystem=== | ||
| + | <pre> | ||
| + | [sudo] zfs snapshot datapool/scripts@snap1 | ||
| + | [sudo] zfs list -t snapshot | ||
| + | </pre> | ||
| + | ===Destroy a snapshot=== | ||
| + | <pre> | ||
| + | [sudo] zfs destroy datapool/scripts@snap1 | ||
| + | [sudo] zfs list -t snapshot | ||
| + | </pre> | ||
| + | ===Rollback a snapshot=== | ||
| + | ====Create a file followed by a snapshot to preserve situation==== | ||
| + | <pre> | ||
| + | [sudo] echo "hello" >/scripts/test1.txt | ||
| + | [sudo] cat /scripts/test1.txt | ||
| + | [sudo] zfs snapshot datapool/scripts@before | ||
| + | [sudo] zfs list -t snapshot | ||
| + | </pre> | ||
| + | ====Change the contents of the file==== | ||
| + | <pre> | ||
| + | [sudo] echo "goodbee" >/scripts/test1.txt | ||
| + | [sudo] cat /scripts/test1.txt | ||
| + | ====Rollback to previous snapshot and see original file contents==== | ||
| + | <pre> | ||
| + | [sudo] zfs list -t snapshot | ||
| + | [sudo] zfs rollback datapool/scripts@before | ||
| + | [sudo] cat /scripts/test1.txt | ||
| + | [sudo] zfs list -t snapshot | ||
| + | </pre> | ||
| + | ===Rename a snapshot=== | ||
| + | <pre> | ||
| + | [sudo] zfs rename datapool/scripts@before datapool/scripts@after | ||
| + | [sudo] zfs list -t snapshot | ||
| + | </pre> | ||
| + | ===Destroy a filesystem=== | ||
| + | <pre> | ||
| + | [sudo] zfs destroy datapool/scripts | ||
| + | [sudo] zfs list -r datapool | ||
| + | </pre> | ||
| + | If there are snapshots of the filesystem, add -r to force the destruction | ||
| + | <pre> | ||
| + | [sudo] zfs destroy -r datapool/scripts | ||
| + | [sudo] zfs list -t snapshot | ||
| + | </pre> | ||
| + | ===Create a clone=== | ||
| + | Clones can only be created from a snapshot.<br /> | ||
| + | Snapshots cannot be deleted unless the clone is deleted.<br /> | ||
| + | Clone the snapshot datapool/scripts@before | ||
| + | <pre> | ||
| + | [sudo] zfs clone datapool/scripts@before datapool/clone1 | ||
| + | zfs list | ||
| + | ls /datapool/clone1 | ||
| + | </pre> | ||
| + | ====Attempt to destroy underlying snapshot==== | ||
| + | <pre> | ||
| + | </pre> | ||
| + | ====Attempt to destroy underlying snapshot==== | ||
| + | <pre> | ||
| + | [sudo] zfs destroy datapool/scripts@before | ||
| + | </pre> | ||
| + | ====Destroy clone first==== | ||
| + | <pre> | ||
| + | [sudo] zfs destroy datapool/clone1 | ||
| + | </pre> | ||
| + | ====Attempt to destroy underlying snapshot again==== | ||
| + | <pre> | ||
| + | [sudo] zfs destroy datapool/scripts@before | ||
</pre> | </pre> | ||
Latest revision as of 10:10, 27 January 2017
Contents
List the sizes and available space in all filesystems on ZFS appliance[edit]
Make sure to be in the root context before running this.
script
run('shares');
projects = list();
printf('%-40s %-10s %-10s\n', 'SHARE', 'USED', 'AVAILABLE');
for (i = 0; i < projects.length; i++) {
run('select ' + projects[i]);
shares = list();
for (j = 0; j < shares.length; j++) {
run('select ' + shares[j]);
share = projects[i] + '/' + shares[j];
used = run('get space_data').split(/\s+/)[3];
avail = run('get space_available').split(/\s+/)[3];
printf('%-40s %-10s %-10s\n', share, used, avail);
run('cd ..');
}
run('cd ..');
}
.
and the same information but "machine readable" sizes
script
fmt = '%-40s %-15s %-15s\n';
printf(fmt, 'SHARE', 'USED', 'AVAILABLE');
run('cd /');
run('shares');
pools = choices('pool');
for (p = 0; p < pools.length; p++) {
set('pool', pools[p]);
projects = list();
for (i = 0; i < projects.length; i++) {
run('select ' + projects[i]);
shares = list();
for (j = 0; j < shares.length; j++) {
run('select ' + shares[j]);
share = pools[p] + ':' + projects[i] + '/' + shares[j];
printf(fmt, share, get('space_data'),
get('space_available'));
run('cd ..');
}
run('cd ..');
}
}
.
Create a pool[edit]
[sudo] zfs create datapool mirror /dev/sdc /dev/sdd [sudo] zfs list
Create a ZFS filesystem / dataset in the pool[edit]
[sudo] zfs create datapool/scripts -o mountpoint=/scripts
[sudo] zfs list -r datapool
Create a snapshot of the filesystem[edit]
[sudo] zfs snapshot datapool/scripts@snap1 [sudo] zfs list -t snapshot
Destroy a snapshot[edit]
[sudo] zfs destroy datapool/scripts@snap1 [sudo] zfs list -t snapshot
Rollback a snapshot[edit]
Create a file followed by a snapshot to preserve situation[edit]
[sudo] echo "hello" >/scripts/test1.txt [sudo] cat /scripts/test1.txt [sudo] zfs snapshot datapool/scripts@before [sudo] zfs list -t snapshot
Change the contents of the file[edit]
[sudo] echo "goodbee" >/scripts/test1.txt [sudo] cat /scripts/test1.txt ====Rollback to previous snapshot and see original file contents==== <pre> [sudo] zfs list -t snapshot [sudo] zfs rollback datapool/scripts@before [sudo] cat /scripts/test1.txt [sudo] zfs list -t snapshot
Rename a snapshot[edit]
[sudo] zfs rename datapool/scripts@before datapool/scripts@after [sudo] zfs list -t snapshot
Destroy a filesystem[edit]
[sudo] zfs destroy datapool/scripts [sudo] zfs list -r datapool
If there are snapshots of the filesystem, add -r to force the destruction
[sudo] zfs destroy -r datapool/scripts [sudo] zfs list -t snapshot
Create a clone[edit]
Clones can only be created from a snapshot.
Snapshots cannot be deleted unless the clone is deleted.
Clone the snapshot datapool/scripts@before
[sudo] zfs clone datapool/scripts@before datapool/clone1 zfs list ls /datapool/clone1
Attempt to destroy underlying snapshot[edit]
Attempt to destroy underlying snapshot[edit]
[sudo] zfs destroy datapool/scripts@before
Destroy clone first[edit]
[sudo] zfs destroy datapool/clone1
Attempt to destroy underlying snapshot again[edit]
[sudo] zfs destroy datapool/scripts@before