[[TableOfContents]] = Important notes = On ''iokaste'', /root/.zshenv now contains {{{ PATH=/usr/afs/bin:$PATH }}} = Status = Currently '''io''' runs an ''rxosd'' and a Heimdal ''KDC'' and the SL5 openafs client. '''iokaste''' runs ''fileserver'', ''vldbserver'', ''osdserver'' and ''ptserver'', all OSD-aware, as is the client. Both run '''openafs-1.4.6''', the servers being compiled with OSD patch. = Building OpenAFS-OSD = In the ''openafs-1.4.5-osd'' directory: {{{ ./configure --enable-bitmap-later --enable-bos-restricted-mode --enable-bos-new-config --enable-fast-restart --enable-supergroups --enable-largefile-fileserver --enable-transarc-paths --with-krb5-conf }}} = Enabeling the client = * From the source directory '''copy''' {{{ src/libafs/MODLOAD-2.6.18-8.1.15.el5-MP/libafs.ko }}} (where ''2.6.18-8.1.15.el5-MP'' is the kernel version) to {{{ /lib/modules/2.6.18-8.1.10.el5/kernel/fs/openafs/libafs.ko }}} * {{{ depmod }}} * reboot * launch ''afsd'' = Issues = == Missing token is not handled well == {{{ $ osd volumes io -lun 1 RX xdr error Cannot list volumes Request aborted. $ osd createv io 1 536870924 Createvolume failed: RXOSD_create_part ended with 13 Request aborted.}}} = Subcommands = == fs createstripedfile == {{{ # fs creates /afs/desytest/osdtest/mirrored-file 1 14 -copies 2 }}} where 1 is the ''number of stripes'' and 14 is ''log_2(stripesize in bytes)''. Note:: Allowed exponents are 12..19, allowing stripe sizes 4kB..512kB. == fs osd == {{{ # fs osd /afs/desytest/osdtest/mirrored-file /afs/desytest/osdtest/mirrored-file has 172 bytes of osd metadata, v=3 On-line, 1 segm, flags=0x0 segment: lng=0, offs=0, stripes=1, strsize=16384, cop=2, 2 objects object: pid=536870924, oid=144117812300873732, osd=10, stripe=0 obj=536870924.4.33555043.0 object: pid=536870924, oid=144117812300873732, osd=11, stripe=0 obj=536870924.4.33555043.0 }}} where ''osd=10'' and ''osd=11'' identify the storing OSD of each file copy. IDs are looked up using `osd listo -ip`. == osd wipecandidates == {{{ # osd wipe io # osd wipe iokaste [ some waiting time ] RXOSD_wipe_candidates failed with code -1 Request aborted. # osd wipe /afs/desytest/osdtest/mirrored._usr_afs.2007-12-17.tar.bz2 (no error output) # osd wipe io 0 # osd wipe io 1 # osd wipe io 2 0 Jan 24 16:03 4209654 536870924.4.33555043.0 536870924.4.33555043 # osd wipe io 3 0 Jan 28 15:31 4209654 536870924.4.33555043.0 536870924.4.33555043 # osd wipe io 4 RXOSD_wipe_candidates failed with code 5 Request aborted. }}} Note:: The last request propably failed because there was no /vicepe/AFSIDat/ directory on io at the time. Note:: Using a filename as the only argument to `osd wipe` should have at least yielded an error similar to when using ''iokaste'' (which is not an OSD server). Note:: The entries for io/2 and io/3 are the two copies of the file created above. == fs wipe == {{{ # fs wipe mirrored._usr_afs.2007-12-17.tar.bz2 Could not wipe mirrored._usr_afs.2007-12-17.tar.bz2, error code was 22 }}} Note:: This appears to be the default answer to a tried wipe of a file that has not yet been archived using `fs archive`. == osd volumes == {{{ # osd volumes io 1 volumes found: 536870924 }}} That's the same VolID as in AFS: {{{ # vos listvl VLDB entries for all servers osdtestvol RWrite: 536870924 number of sites -> 1 server iokaste.ifh.de partition /vicepa RW Site root.cell RWrite: 536870921 number of sites -> 1 server iokaste.ifh.de partition /vicepa RW Site Total entries: 2 }}} == osd objects == Both volume and partition are needed: {{{ # osd obj io 536870924 0 object(s) with totally 0 bytes for volume 536870924 found # osd obj io 536870924 2 536870924.4.33555043.0 fid 536870924.4.611 tag 0 not-striped lng 4209654 lc 1 1 object(s) with totally 4209654 bytes for volume 536870924 found }}} Note:: Without specifying a lun, the default of 0 (vicepa) is used.