## page was renamed from AfsOsd/UsageInstructions <> = fs commands = == fs ls == {{{ % fs ls /afs/ifh.de/testsuite/testosd/ m rwxnieprask 2048 2009-06-04 14:18:08 . m rwxnieprask 2048 2009-06-04 13:39:15 .. l rwx ffrank 9 2009-06-09 09:18:13 symli -> testfile1 f rw- ffrank 1000000000 2009-06-04 13:46:01 testfile1 o rw- ffrank 1000000000 2009-06-04 13:55:40 testfile2 o rw- ffrank 1000000000 2009-06-04 13:59:27 testfile3 o rw- ffrank 1000000000 2009-06-04 14:18:17 testfile4 }}} The initial letter signifies the type of entry || '''m''' || mountpoint || || '''d''' || directory || || '''l''' || symlinks || || '''f''' || file || || '''o''' || file in online object storage || || '''w''' || wiped OSD files (i.e., in object storage, but only archival copies, no online ones available) || Helpful switches:: `-fid`, display file IDs, alternative to fs getfid == fs osd / fs fidosd == Display file's metadata. Works only for OSD files (i.e., entries with ''o'' or ''w'' from `fs ls`) {{{ % fs ls | grep 'testfile[12]' f rw- ffrank 1000000000 2009-06-04 13:46:01 testfile1 o rw- ffrank 1000000000 2009-06-04 13:55:40 testfile2 % fs osd testfile1 Error 22 reading length of metadata % fs osd testfile2 testfile2 has 132 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536900068.4.5.0, osd=2, stripe=0 }}} Most interesting fields: || '''obj''' || object id, same as fid plus tag || || '''osd''' || id of the OSD that stores this object. resolve using `osd l` || There is more metadata to archived files, see `fs archive`. Helpful switches:: `-pathes`: Display path on fileserver. Especially convenient in conjunction with ''vicep-access'' (as the path is local then, as well) == fs archive / fs fidarchive == Create an archival copy of a file (i.e., an additional object in an archival OSD). Works only for OSD files: {{{ # fs ls mini f rw- bin 5 2009-06-09 11:39:41 mini # fs arch mini Could not archive mini, error code was 22 }}} Observe the addition of metadata: {{{ # fs osd file5 file5 has 132 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=21, stripe=0 # fs arch file5 file5 done # fs osd file5 file5 has 284 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=21, stripe=0 Archive, dv=1, 2009-06-04 16:34:16, 1 segm, flags=0x0 segment: lng=3079608, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=22, stripe=0 metadata: md5=95078190456d834a8d1082fc25dcfbcb as from 2009-06-09 15:57:50 }}} == fs wipe / fs fidwipe == Remove the online copy(-ies) of an OSD file. This works only for files that have archival copies: {{{ # fs osd testfile3 testfile3 has 132 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536900068.6.7.0, osd=2, stripe=0 # fs wipe testfile3 Could not wipe testfile3, error code was 22 }}} This file can be wiped: {{{ # fs osd file5 file5 has 284 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=21, stripe=0 Archive, dv=1, 2009-06-04 16:34:16, 1 segm, flags=0x0 segment: lng=3079608, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=22, stripe=0 metadata: md5=95078190456d834a8d1082fc25dcfbcb as from 2009-06-09 15:57:50 # fs osd file5 file5 has 160 bytes of osd metadata, v=3 Archive, dv=2, 2009-06-09 15:58:47, 1 segm, flags=0x2 segment: lng=3079613, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.1, osd=22, stripe=0 metadata: md5=736b005529288bbbd5b196ababbe9fd3 as from 2009-06-09 16:20:01 }}} It is now gone from online OSD storage. Only the archival copy remains. Of course, files with "online changes" are exempt from wiping: {{{ # fs arch file5 file5 done # echo test >> file5 # fs wipe file5 Could not wipe file5, error code was 22 }}} Granted, this response could be more elaborate. == fs prefetch / fs fidprefetch == Asynchronously restore an archival file copy (if no online copy is available). This operation is the counterpart to `fs wipe`. It doesn't need to be called: Upon access to a file that is not online, the fileserver will see to it that an archival copy is restored and block until that operation is finished. Using prefetch, users can shorten this delay. Consider this wiped file: {{{ # fs osd file5 file5 has 160 bytes of osd metadata, v=3 Archive, dv=3, 2009-06-09 16:28:22, 1 segm, flags=0x2 segment: lng=3079618, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=22, stripe=0 metadata: md5=706daff6e7cf2c9818edeea5448eb8a3 as from 2009-06-09 16:29:41 # fs prefetch file5 file5 was already on disk. # fs osd file5 file5 has 284 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=21, stripe=0 Archive, dv=3, 2009-06-09 16:28:22, 1 fetches, last: 2009-06-09, 1 segm, flags=0x2 segment: lng=3079618, offs=0, stripes=1, strsize=0, cop=1, 1 objects object: obj=536871270.10.4209.0, osd=22, stripe=0 metadata: md5=706daff6e7cf2c9818edeea5448eb8a3 as from 2009-06-09 16:29:41 }}} This was rather pointless, because osd 22 is not a tape archive but a mere disk instead. And AFS told us so. /!\ FIXME: Show true tape restore example. == fs createstripedfile == Barring the use of policies, this is the only way to make use of striping/mirroring. It can also be used to enforce creation of an OSD file. Its uses are largely obsoleted by policies. == fs fetchqueue == When using OSD with HSM, see what files are being restored from tape to online OSDs. /!\ FIXME: No example currently available. == fs protocol == {{{ fs protocol Enabled protocols are VICEP-ACCESS (with Lustre hack) RXOSD (1 parallel streams on connections with rtt > 10 ms). }}}