:
:On Wed, Aug 8, 2012 at 10:44 AM, Matthew Dillon
:<dil...@apollo.backplane.com> wrote:
:
:>       Full graph spanning tree protocol so there can be loops, multiple ways
:>       to get to the same target, and so on and so forth.  The SPANs propagate
:>       the best N (one or two) paths for each mount.
:>
:
:Can this be tested in development.
:What commands should be used? :-)
:
:--Thanks

    It's a bit opaque but basically you create the /etc/hammer2 directory
    infrastructure and then setup some hammer2 filesystems.

        hammer2 rsainit
        mkdir /etc/hammer2/remote
        cd /etc/hammer2/remote
        (create <IPADDR>.pub or <IPADDR>.none files)

        Essentially you copy the rsa.pub key from the source machine
        into /etc/hammer2/remote/<IPADDR>.pub on the target machine.
        You can then connect from the source machine to the target
        machine as described below.

        Normally you also create a localhost link and, for testing purposes,
        it isn't root protected and you can tell it not to use encryption:

            touch /etc/hammer2/remote/127.0.0.1.none

    In order to be able connect to the service daemon and have the
    daemon be able to connect to other service daemons you need to
    set up encryption on the machine:

        #!/bin/csh
        #

        # example disk by serial number
        set disk = "<SERNO>.s1d"
        newfs_hammer2 /dev/serno/$disk
        mount /dev/serno/$disk@ROOT /mnt

        cd /mnt
        hammer2 pfs-create TEST1
        set uuid = `hammer2 pfs-clid TEST1`
        echo "cluster uuid $uuid"

        foreach i ( TEST2 TEST3 TEST4 TEST5 TEST6 TEST7 TEST8 TEST9 )
            hammer2 -u $uuid pfs-create $i
            mkdir -p /test$i
            mount /dev/serno/$disk@TEST$i /test$i
        end

    The mounts will start up a hammer2 service daemon which connects
    to each mount.  You can kill the daemon and start it manually and
    it will reconnect automatically.  The service daemon runs in the
    background.  To see all the debug output kill it and start it in
    the foreground with -d:

        killall hammer2
        hammer2 -d service

    I usually do this on each test machine.  Then I connect the service
    daemons to each other in various ways.

        # hammer2 -s /mnt status
        # hammer2 -s /mnt connect span:test28.fu.bar.com
        # hammer2 -s /mnt status
        CPYID LABEL           STATUS PATH
            1                 ---.00 span:test28.fu.bar.com

        (you can 'disconnect' a span as well.  The spans will attempt to
        reconnect every 5 seconds forever while in the table).

        (the connection table is on the media, thus persistent)

    You can also connect a 'shell' to a running service daemon, as long
    as /etc/hammer2/remote allows it:
        
        hammer2 shell 127.0.0.1
        (do various commands)

        only the 'tree' command is really useful here though you can
        also manually connect spans.  You can't kill them though.

    In anycase, that's the jist of it for the moment.  The 'tree' command
    from the shell gives you a view of the spans from the point of view of
    whatever machine you are connecting to.

    Remember that the HAMMER2 filesystem itself is not production ready...
    it can't free blocks, for example (kinda like a PROM atm).  And, of
    course, there are no protocols running on the links yet.  I haven't
    gotten routing working yet.

    The core is fairly advanced... encryption, messaging transactions,
    notification of media config changes, automatic reconnect on connection
    failure, etc.

                                        -Matt
                                        Matthew Dillon 
                                        <dil...@backplane.com>

Reply via email to