[Search for users] [Overall Top Noters] [List of all Conferences] [Download this site]

Conference smurf::ase

Title:ase
Moderator:SMURF::GROSSO
Created:Thu Jul 29 1993
Last Modified:Fri Jun 06 1997
Last Successful Update:Fri Jun 06 1997
Number of topics:2114
Total number of notes:7347

2001.0. "how can we test our DRD's without OPS ???" by BRSDVP::DIDDEN () Tue Apr 15 1997 14:58

    hi there,
    
    Can anyone enlighten me on the following ?
    
    We have set up a TCR  ( 2 member Digital Unix V4.0b and TruCluster V1.4
    ) and have defined a DRD service to be used by OPS.
    
    The DRD service is build upon raw LSM volumes.
    
    Running the clu_ivp shows that all is OK, so we tried to use
    dd and diskx to access the DRD devices and this *FAILS*.
    
    In case of dd we get:
    
    # dd if=/vmunix of=/dev/rdrd/drd8 bs=1024k
    dd write error: Invalid argument
    9+1 records in
    9+0 records out
    
    we then tried to use diskx
    
    # diskx -f drd8 -p -S -X -x -perf_max 8k -perf_xfers 5000 -num_blocks
    10000
    
    and this claims to have a problem with the fact that
    creatediskbyname(3x) is not implemented on the system and also says
    something about DEV_DISK.
    
    Is there any way to do a check on DRD's ??? except of starting the
    install of OPS.
    
    By the way it seems to have created only /dev/rdrd/drdx special files
    while in V1.0 of TCR there also were /dev/drd/drdx special files ...???
    
    Can anyone comment on this ?!
    
    thanks,
    Geert\\\
T.RTitleUserPersonal
Name
DateLines
2001.1Test is goodNNTPD::"pelle@zk3.dec.com"PelleTue Apr 15 1997 22:5115
Your dd test should work. I suspect that there is some additional error in 
/var/adm/*dated/*/kern.log or that the particular partition that drd maps to
is 
no good. Does it work if you read from drd? You can also try od on a drd
device.
It works. Try a smaller bs size and see if that works, 1M is pretty big
although 
there is no reason why it wouldn't work.

The directory /dev/drd/... did exist at some early time in drd life. I don't
think that it was released though. It was changed to /dev/rdrd in order to
give
way for support of block devices over drd. This support will come in a future
release of drd.
[Posted by WWW Notes gateway]
2001.2dd to raw LSM volume also renders invalid argumentBACHUS::DIDDENWed Apr 16 1997 08:1815
    I agree on what you are saying but something additional has surfaced in
    the meantime:
    
    %% This dd only fails on the node carrying the service.
    
    I have tried relocating from one to the other and my %% statement stays
    exactly the same.
    
    In the office I tried something else, I created me an LSM volume,
    tried to dd to /dev/rvol/testdg/testvol and the dd fails in exactly the
    same manner.
    
    Strange isn't it .. ?!
    
    Geert\\\
2001.3Test is NOT goodNNTPD::"pelle@zk3.dec.com"pelleWed Apr 16 1997 15:0032
Your test is actually flawed. When using a raw disk interface, you should 
access whole blocks. In this case this means that you can't write half a 
diskblock. Since /vmunix isn't a multiple of 512 (check this on your system),
the last write will fail with EINVAL. LSM checks in its driver write routines 
that you are trying to write multiples of whole blocks. In short, you are
not adhering to the rules for LSM raw devices. If you want to dd /vmunix into
the volume you can do it via the LSM block device. In that case /vmunix will
be copied into the kernel and the kernel will handle the padding of block
parts.
However, that is probably not something you are really interested in.

Also, why does it work when drd is used remotely? This is because of drd:s
design: When drd is accessing the underlying disk driver (here LSM) on the
remote host, it bypasses the read and write routines and accesses the driver
strategy routine directly. Since LSM does thebyte count checks in the read and

write routines, the check isn't made. But the last block in the last write is 
going to be padded with something probably zeroes. That may not have been what
 you intended.

It is a quirk of drd that it doesn't behave in the same way remotely
and locally when on top of LSM. I wouldn't call it a bug though. If you are 
using the raw driver
interface, better know what you are doing. If you use a raw disk partition
directly (not LSM), you wouldn't get an error locally or remotely. This is
because our scsi disk driver doesn't check for block multiples. However,
the scsi disk driver would write a whole block to the disk when you are asking

for a fraction. The padded part is garbage data probably zeroes.

Finally, the diskx utility doesn't work with drd. Check man page for -f option
[Posted by WWW Notes gateway]
2001.4LSM bugNNTPD::"pelle@zk3.dec.com"PelleThu Apr 17 1997 18:196
After thinkning a little more about this, I have entered a QAR on LSM. When
looking at Digital's documentation and the upcoming Unix98 standard, this
error
 is not documented anywhere for write(2). LSM should write the data (as the
disk driver does) without giving an error. 
[Posted by WWW Notes gateway]