We’re talking host nqn right, not subsystem nqn?

David
714-476-2692

> On Jun 26, 2019, at 09:17, Jonas Pfefferle <peppe...@japf.ch> wrote:
> 
> There can only be 1 NQN in the whole system. For multiple storage classes 
> just use different ip/port combinations with the same NQN. e.g. start a NVMf 
> server on node 1 with storage class 1 with NQN X and start a server on node 2 
> with storage class 2 with NQN X. You can start another server on node 1 by 
> choosing a different port but still use the same NQN X.
> I know that this is cumbersome to use. We are working on it, we just have not 
> found a solution that makes everyone happy :-)
> 
> 
> Regards,
> Jonas
> 
> On Wed, 26 Jun 2019 16:09:06 +0000
> David Crespi <david.cre...@storedgesystems.com> wrote:
>> Sorry Jonas but I’m still confused.
>> I started off doing this by having each storage class 1 connected to it’s 
>> own subsystem,
>> with a single namespace.  This is where I was seeing the correct IP address 
>> of that subsystem,
>> but the wrong controller name.  It was the controller name of the storage 
>> class 2, that was also
>> registered with the namenode.  So this is the correct way of using it, but 
>> it’s having a problem
>> determining which controller to identify?
>> Regards,
>>          David
>> From: Jonas Pfefferle<mailto:peppe...@japf.ch>
>> Sent: Wednesday, June 26, 2019 9:01 AM
>> To: dev@crail.apache.org<mailto:dev@crail.apache.org>; David 
>> Crespi<mailto:david.cre...@storedgesystems.com>
>> Subject: Re: Question on crail type-1 with terasort shuffle data
>> I'm sure you already figured this out but just to make sure we are on the
>> same page. The NVMf storage tier (or datanode, we use them interchangeably)
>> is just another NVMf client that connects to the NVMf server and retrieves
>> all necessary information like capacity etc. to register the datanode to the
>> namenode. When starting a NVMf datanode you can specify via the commandline
>> what storage class the datanode should be in. It then registers the ip/port
>> combination with the storage class information at the namenode. Now whenever
>> a block is requested from the namenode by a client, the namenode sends the
>> ip/port information and the storage class to the client. With this
>> information the client connects to the NVMf server (not the datanode)
>> directly with the NQN provided in the config file, namespace 1 and the
>> ip/port information it got from the namenode.
>> I hope this makes it clearer.
>> Regards,
>> Jonas
>> On Wed, 26 Jun 2019 14:55:05 +0000
>> David Crespi <david.cre...@storedgesystems.com> wrote:
>>> Yep.  I wanted to use crail-store for temp results storage, storage
>>> class 2, AND the shuffle data, with
>>> 
>>> storage class 1.
>>> 
>>> 
>>> Regards,
>>> 
>>> 
>>>          David
>>> 
>>> 
>>> ________________________________
>>> From: Jonas Pfefferle <peppe...@japf.ch>
>>> Sent: Wednesday, June 26, 2019 7:51:43 AM
>>> To: dev@crail.apache.org; David Crespi
>>> Subject: Re: Question on crail type-1 with terasort shuffle data
>>> 
>>> David,
>>> 
>>> 
>>> Let's make sure we talk about the same thing, I assume with type 1
>>> and 2 you
>>> mean storage classes?
>>> 
>>> Regards,
>>> Jonas
>>> 
>>> On Wed, 26 Jun 2019 14:25:52 +0000
>>> David Crespi <david.cre...@storedgesystems.com> wrote:
>>>> I’m a bit confused now. If it only ever handles 1 namespace, then
>>>> multiple datanodes are useless.
>>>> 
>>>> Or are you saying only 1 namespace for type-1?  If you’re not saying
>>>> only one for type-1, how do you
>>>> 
>>>> mix types if limited to 1 namespace?
>>>> 
>>>> 
>>>> Regards,
>>>> 
>>>> 
>>>>          David
>>>> 
>>>> 
>>>> ________________________________
>>>> From: Jonas Pfefferle <peppe...@japf.ch>
>>>> Sent: Wednesday, June 26, 2019 12:25:38 AM
>>>> To: dev@crail.apache.org; David Crespi
>>>> Subject: Re: Question on crail type-1 with terasort shuffle data
>>>> 
>>>> I forgot to add: Namespace has to be 1 for the moment. This is a
>>>> limitation
>>>> in how the namenode handles storage tier metadata (essentially it
>>>> only
>>>> stores ip/port). You can set it on the server side however it will
>>>> not be
>>>> respected by the client, i.e. the client will always use namespace
>>>> id 1.
>>>> 
>>>> 
>>>> Regards,
>>>> Jonas
>>>> 
>>>> On Wed, 26 Jun 2019 09:17:40 +0200
>>>> "Jonas Pfefferle" <peppe...@japf.ch> wrote:
>>>>> Hi David,
>>>>> 
>>>>> 
>>>>> This is currently a limitation of the NVMf storage tier. You need to
>>>>> use the same NQN on all datanodes. The port can be different however.
>>>>> I will clarify this in the documentation.
>>>>> 
>>>>> Regards,
>>>>> Jonas
>>>>> 
>>>>> On Tue, 25 Jun 2019 19:43:04 +0000
>>>>> David Crespi <david.cre...@storedgesystems.com> wrote:
>>>>>> It occurred to me that perhaps since I’m using the NVMf, that the
>>>>>> namenode can only handle one
>>>>>> 
>>>>>> Subsystem.  And for the type-1, these resources would need to be
>>>>>> added under the same subsystem,
>>>>>> 
>>>>>> but as different namespace’s.  Is this correct?  I did try this and
>>>>>> it appears to be working. If this IS the
>>>>>> 
>>>>>> correct way of utilizing these, how do I know which namespace(s) are
>>>>>> being accessed?  I don’t see
>>>>>> 
>>>>>> anything in the logs that identify which is being addressed.
>>>>>> 
>>>>>> 
>>>>>> Regards,
>>>>>> 
>>>>>> 
>>>>>>          David
>>>>>> 
>>>>>> 
>>>>>> ________________________________
>>>>>> From: David Crespi <david.cre...@storedgesystems.com>
>>>>>> Sent: Tuesday, June 25, 2019 11:09:56 AM
>>>>>> To: dev@crail.apache.org
>>>>>> Subject: Question on crail type-1 with terasort shuffle data
>>>>>> 
>>>>>> I’m starting to run terasort now with the shuffle data going to
>>>>>> crail type-1.
>>>>>> I’ve got the type-2 set to nqn:
>>>>>> nqn.2018-12.com.StorEdgeSystems:cntlr13 @192.168.3.100,
>>>>>> which appears to be working okay for the result data.  When I
>>>>>> introduce type-1 into my config,
>>>>>> it looks like the namenode gets confused and picks the nqn of the
>>>>>> type-2 crailstore, instead of
>>>>>> the one it is assigned (bolded in red below).
>>>>>> 
>>>>>> In my test run, I have 5 type-2 nodes (192.168.3.100, ns=1-5) and
>>>>>> then 5 type-1 added to the
>>>>>> spark worker nodes (192.168.3.101-105).  All are running the same
>>>>>> image as the namenode,
>>>>>> which is the spark master.
>>>>>> 
>>>>>> Is there some additional setting I need to include for this?
>>>>>> These are the variables that get set for each container (added via
>>>>>> environment)
>>>>>> # NVMf storage
>>>>>> crail.storage.nvmf.ip                     $NVMF_IP
>>>>>> crail.storage.nvmf.port                 $NVMF_PORT
>>>>>> crail.storage.nvmf.nqn                  $NVMF_NQN
>>>>>> crail.storage.nvmf.hostnqn           $NVMF_HOSTNQN
>>>>>> crail.storage.nvmf.namespace      $NVMF_NAMESPACE
>>>>>> 
>>>>>> 19/06/25 10:46:43 INFO crail: creating singleton crail file system
>>>>>> 19/06/25 10:46:43 INFO crail: crail.version 3101
>>>>>> 19/06/25 10:46:43 INFO crail: crail.directorydepth 16
>>>>>> 19/06/25 10:46:43 INFO crail: crail.tokenexpiration 10
>>>>>> 19/06/25 10:46:43 INFO crail: crail.blocksize 1048576
>>>>>> 19/06/25 10:46:43 INFO crail: crail.cachelimit 0
>>>>>> 19/06/25 10:46:43 INFO crail: crail.cachepath /dev/hugepages/cache
>>>>>> 19/06/25 10:46:43 INFO crail: crail.user crail
>>>>>> 19/06/25 10:46:43 INFO crail: crail.shadowreplication 1
>>>>>> 19/06/25 10:46:43 INFO crail: crail.debug true
>>>>>> 19/06/25 10:46:43 INFO crail: crail.statistics true
>>>>>> 19/06/25 10:46:43 INFO crail: crail.rpctimeout 1000
>>>>>> 19/06/25 10:46:43 INFO crail: crail.datatimeout 1000
>>>>>> 19/06/25 10:46:43 INFO crail: crail.buffersize 1048576
>>>>>> 19/06/25 10:46:43 INFO crail: crail.slicesize 65536
>>>>>> 19/06/25 10:46:43 INFO crail: crail.singleton true
>>>>>> 19/06/25 10:46:43 INFO crail: crail.regionsize 1073741824
>>>>>> 19/06/25 10:46:43 INFO crail: crail.directoryrecord 512
>>>>>> 19/06/25 10:46:43 INFO crail: crail.directoryrandomize true
>>>>>> 19/06/25 10:46:43 INFO crail: crail.cacheimpl
>>>>>> org.apache.crail.memory.MappedBufferCache
>>>>>> 19/06/25 10:46:43 INFO crail: crail.locationmap
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.address
>>>>>> crail://192.168.1.164:9060
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.blockselection
>>>>>> roundrobin
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.fileblocks 16
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.rpctype
>>>>>> org.apache.crail.namenode.rpc.tcp.TcpNameNode
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.log
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.types
>>>>>> org.apache.crail.storage.nvmf.NvmfStorageTier
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.classes 2
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.rootclass 0
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.keepalive 2
>>>>>> 19/06/25 10:46:43 INFO crail: buffer cache, allocationCount 0,
>>>>>> bufferCount 1024
>>>>>> 19/06/25 10:46:43 INFO crail: Initialize Nvmf storage client
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.nvmf.ip 192.168.3.100
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.nvmf.port 4420
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.nvmf.nqn
>>>>>> nqn.2018-12.com.StorEdgeSystems:cntlr13
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.nvmf.hostnqn
>>>>>> nqn.2014-08.org.nvmexpress:uuid:1b4e28ba-2fa1-11d2-883f-0016d3cca420
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.nvmf.allocationsize
>>>>>> 1073741824
>>>>>> 19/06/25 10:46:43 INFO crail: crail.storage.nvmf.queueSize 64
>>>>>> 19/06/25 10:46:43 INFO narpc: new NaRPC server group v1.0,
>>>>>> queueDepth 32, messageSize 512, nodealy true
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.tcp.queueDepth 32
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.tcp.messageSize 512
>>>>>> 19/06/25 10:46:43 INFO crail: crail.namenode.tcp.cores 1
>>>>>> 19/06/25 10:46:43 INFO crail: connected to namenode(s)
>>>>>> /192.168.1.164:9060
>>>>>> 19/06/25 10:46:43 INFO CrailDispatcher: creating main dir /spark
>>>>>> 19/06/25 10:46:43 INFO crail: lookupDirectory: path /spark
>>>>>> 19/06/25 10:46:43 INFO crail: lookup: name /spark, success, fd 2
>>>>>> 19/06/25 10:46:43 INFO CrailDispatcher: creating main dir /spark
>>>>>> 19/06/25 10:46:43 INFO crail: delete: name /spark, recursive true
>>>>>> 19/06/25 10:46:43 INFO crail: CoreOutputStream, open, path /, fd 0,
>>>>>> streamId 1, isDir true, writeHint 0
>>>>>> 19/06/25 10:46:43 INFO crail: Connecting to NVMf target at Transport
>>>>>> address = /192.168.3.100:4420, subsystem NQN =
>>>>>> nqn.2018-12.com.StorEdgeSystems:cntlr13
>>>>>> 19/06/25 10:46:43 INFO disni: creating  RdmaProvider of type 'nat'
>>>>>> 19/06/25 10:46:43 INFO disni: jverbs jni version 32
>>>>>> 19/06/25 10:46:43 INFO disni: sock_addr_in size mismatch, jverbs
>>>>>> size 28, native size 16
>>>>>> 19/06/25 10:46:43 INFO disni: IbvRecvWR size match, jverbs size 32,
>>>>>> native size 32
>>>>>> 19/06/25 10:46:43 INFO disni: IbvSendWR size mismatch, jverbs size
>>>>>> 72, native size 128
>>>>>> 19/06/25 10:46:43 INFO disni: IbvWC size match, jverbs size 48,
>>>>>> native size 48
>>>>>> 19/06/25 10:46:43 INFO disni: IbvSge size match, jverbs size 16,
>>>>>> native size 16
>>>>>> 19/06/25 10:46:43 INFO disni: Remote addr offset match, jverbs size
>>>>>> 40, native size 40
>>>>>> 19/06/25 10:46:43 INFO disni: Rkey offset match, jverbs size 48,
>>>>>> native size 48
>>>>>> 19/06/25 10:46:43 INFO disni: createEventChannel, objId
>>>>>> 139964194703408
>>>>>> 19/06/25 10:46:43 INFO disni: launching cm processor, cmChannel 0
>>>>>> 19/06/25 10:46:43 INFO disni: createId, id 139964194793600
>>>>>> 19/06/25 10:46:43 INFO disni: new client endpoint, id 0, idPriv 0
>>>>>> 19/06/25 10:46:43 INFO disni: resolveAddr, addres
>>>>>> /192.168.3.100:4420
>>>>>> 19/06/25 10:46:43 INFO disni: resolveRoute, id 0
>>>>>> 19/06/25 10:46:43 INFO disni: allocPd, objId 139964194800080
>>>>>> 19/06/25 10:46:43 INFO disni: setting up protection domain, context
>>>>>> 461, pd 1
>>>>>> 19/06/25 10:46:43 INFO disni: new endpoint CQ processor
>>>>>> 19/06/25 10:46:43 INFO disni: createCompChannel, context
>>>>>> 139962246807056
>>>>>> 19/06/25 10:46:43 INFO disni: createCQ, objId 139964194801488, ncqe
>>>>>> 64
>>>>>> 19/06/25 10:46:43 INFO disni: createQP, objId 139964194803176,
>>>>>> send_wr size 32, recv_wr_size 32
>>>>>> 19/06/25 10:46:43 INFO disni: connect, id 0
>>>>>> 19/06/25 10:46:43 INFO disni: got event type +
>>>>>> RDMA_CM_EVENT_ESTABLISHED, srcAddress /192.168.3.13:45059, dstAddress
>>>>>> /192.168.3.100:4420
>>>>>> 19/06/25 10:46:43 INFO disni: createId, id 139964195036000
>>>>>> 19/06/25 10:46:43 INFO disni: new client endpoint, id 1, idPriv 0
>>>>>> 19/06/25 10:46:43 INFO disni: resolveAddr, addres
>>>>>> /192.168.3.100:4420
>>>>>> 19/06/25 10:46:43 INFO disni: resolveRoute, id 0
>>>>>> 19/06/25 10:46:43 INFO disni: setting up protection domain, context
>>>>>> 461, pd 1
>>>>>> 19/06/25 10:46:43 INFO disni: new endpoint CQ processor
>>>>>> 19/06/25 10:46:43 INFO disni: createCompChannel, context
>>>>>> 139962246807056
>>>>>> 19/06/25 10:46:43 INFO disni: createCQ, objId 139964195036752, ncqe
>>>>>> 128
>>>>>> 19/06/25 10:46:43 INFO disni: createQP, objId 139964195037304,
>>>>>> send_wr size 64, recv_wr_size 64
>>>>>> 19/06/25 10:46:43 INFO disni: connect, id 0
>>>>>> 19/06/25 10:46:43 INFO disni: got event type +
>>>>>> RDMA_CM_EVENT_ESTABLISHED, srcAddress /192.168.3.13:57619, dstAddress
>>>>>> /192.168.3.100:4420
>>>>>> 19/06/25 10:46:43 INFO crail: EndpointCache miss
>>>>>> /192.168.3.100:4420, fsId 0, cache size 1
>>>>>> 19/06/25 10:46:43 INFO crail: delete: name /spark, recursive true,
>>>>>> success
>>>>>> 19/06/25 10:46:43 INFO crail: CoreOutputStream, close, path /, fd 0,
>>>>>> streamId 1, capacity 262656
>>>>>> 19/06/25 10:46:43 INFO crail: createNode: name /spark, type
>>>>>> DIRECTORY, storageAffinity 0, locationAffinity 0
>>>>>> 19/06/25 10:46:43 INFO crail: CoreOutputStream, open, path /, fd 0,
>>>>>> streamId 2, isDir true, writeHint 0
>>>>>> 19/06/25 10:46:43 INFO crail: EndpointCache hit /192.168.3.100:4420,
>>>>>> fsId 0
>>>>>> 19/06/25 10:46:43 INFO crail: createFile: name /spark, success, fd
>>>>>> 4, token 0
>>>>>> 19/06/25 10:46:43 INFO crail: CoreOutputStream, close, path /, fd 0,
>>>>>> streamId 2, capacity 524800
>>>>>> 19/06/25 10:46:43 INFO crail: createNode: name /spark/broadcast,
>>>>>> type DIRECTORY, storageAffinity 0, locationAffinity 0
>>>>>> 19/06/25 10:46:43 INFO crail: CoreOutputStream, open, path /spark,
>>>>>> fd 4, streamId 3, isDir true, writeHint 0
>>>>>> 19/06/25 10:46:43 INFO crail: Connecting to NVMf target at Transport
>>>>>> address = /192.168.3.104:4420, subsystem NQN =
>>>>>> nqn.2018-12.com.StorEdgeSystems:cntlr13  (<-- should be
>>>>>> nqn.2018-12.com.StorEdgeSystems:worker-4)
>>>>>> 19/06/25 10:46:43 INFO disni: createEventChannel, objId
>>>>>> 139964195131168
>>>>>> 19/06/25 10:46:43 INFO disni: createId, id 139964195141520
>>>>>> 19/06/25 10:46:43 INFO disni: new client endpoint, id 2, idPriv 0
>>>>>> 19/06/25 10:46:43 INFO disni: launching cm processor, cmChannel 0
>>>>>> 19/06/25 10:46:43 INFO disni: resolveAddr, addres
>>>>>> /192.168.3.104:4420
>>>>>> 19/06/25 10:46:43 INFO disni: resolveRoute, id 0
>>>>>> 19/06/25 10:46:43 INFO disni: setting up protection domain, context
>>>>>> 461, pd 1
>>>>>> 19/06/25 10:46:43 INFO disni: new endpoint CQ processor
>>>>>> 19/06/25 10:46:43 INFO disni: createCompChannel, context
>>>>>> 139962246807056
>>>>>> 19/06/25 10:46:43 INFO disni: createCQ, objId 139964195142224, ncqe
>>>>>> 64
>>>>>> 19/06/25 10:46:43 INFO disni: createQP, objId 139964195151896,
>>>>>> send_wr size 32, recv_wr_size 32
>>>>>> 19/06/25 10:46:43 INFO disni: connect, id 0
>>>>>> 19/06/25 10:46:43 INFO disni: got event type +
>>>>>> RDMA_CM_EVENT_ESTABLISHED, srcAddress /192.168.3.13:35873, dstAddress
>>>>>> /192.168.3.104:4420
>>>>>> 19/06/25 10:46:43 INFO crail: ERROR: failed data operation
>>>>>> com.ibm.jnvmf.UnsuccessfulComandException: Command was not
>>>>>> successful. {StatusCodeType: 1 - Command Specific, SatusCode: 132 -
>>>>>> The host is not allowed to establish an association to any controller
>>>>>> in the NVM subsystem or the host is not allowed to establish an
>>>>>> association to the specified controller., CID: 0, Do_not_retry:
>>>>>> false, More: false, SQHD: 0}
>>>>>>       at com.ibm.jnvmf.QueuePair.connect(QueuePair.java:128)
>>>>>>       at
>>>>>> com.ibm.jnvmf.AdminQueuePair.connect(AdminQueuePair.java:36)
>>>>>> 
>>>>>> 
>>>>>> Regards,
>>>>>> 
>>>>>>          David
>>>>>> 
>>>>> 
> 

Reply via email to