COSBench on Hitachi Content Platform (HCP)- Writing data on all HCP nodes simultaneously

classic Classic list List threaded Threaded
4 messages Options
Reply | Threaded
Open this post in threaded view
|

COSBench on Hitachi Content Platform (HCP)- Writing data on all HCP nodes simultaneously

Nitesh Taneja
Currently, I am using “endpoint” in my workload.xml file and specify a DNS for the target system, something like-

<storage type="s3" config="accesskey=XXX;secretkey=XXX;proxyhost=;proxyport=;endpoint=http://t1.cluster45c.lab.archivas.com"/>   

Given this configuration, COSBench picks a single node in HCP (randomly), starts writing to it and it works great.
 

However, I need a little more flexibility in terms of choosing any or all nodes in the system to simultaneously write data to. I tried to replicate Amplistor configuration file by using this -

<workstage name="main1">
      <work name="main" workers="8" runtime="2">
     <storage type="ampli" config="host=172.20.45.70;port=8080" />
      <operation type="write" ratio="100" config="cprefix=s3testnode;containers=r(1,1);objects=r(1,10000000);sizes=c(1)KB" />
      </work>
    </workstage>


and got this error:
2013-08-05 16:54:17,590 [INFO] [Log4jLogManager] - will append log to file /var/home/grinder/cosbench-0.3.1.2/0.3.1.1/log/mission/M850424FB4E.log
2013-08-05 16:54:17,601 [ERROR] [Writer] - fail to perform write operation
com.intel.cosbench.api.storage.StorageException: org.apache.http.conn.HttpHostConnectException: Connection to http://172.20.45.70:8080 refused
        at com.intel.cosbench.api.amplistor.AmpliStorage.createObject(AmpliStorage.java:154)
        at com.intel.cosbench.driver.operator.Writer.doWrite(Writer.java:94)
        at com.intel.cosbench.driver.operator.Writer.operate(Writer.java:76)
        at com.intel.cosbench.driver.operator.AbstractOperator.operate(AbstractOperator.java:53)



Assuming that I probably need to use s3 as the storage, I tried this as well-

<workstage name="main1">
      <work name="main" workers="8" runtime="2">
     <storage type="s3" config="accesskey=XXX;secretkey=XXX;proxyhost=172.20.45.70;proxyport=8080" />
      <operation type="write" ratio="100" config="cprefix=s3testnode;containers=r(1,1);objects=r(1,10000000);sizes=c(1)KB" />
      </work>
    </workstage>


However, I keep getting this error-
2013-08-05 16:52:14,422 [INFO] [Log4jLogManager] - will append log to file /var/home/grinder/cosbench-0.3.1.2/0.3.1.1/log/mission/MA50406C949.log
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_1 with length=1000 Bytes
2013-08-05 16:52:14,451 [INFO] [S3Storage] - Creating s3testnode1\myobjects_8 with length=1000 Bytes
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_4 with length=1000 Bytes
2013-08-05 16:52:14,450 [INFO] [S3Storage] - Creating s3testnode1\myobjects_7 with length=1000 Bytes
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_2 with length=1000 Bytes
2013-08-05 16:52:14,450 [INFO] [S3Storage] - Creating s3testnode1\myobjects_6 with length=1000 Bytes
2013-08-05 16:52:14,450 [INFO] [S3Storage] - Creating s3testnode1\myobjects_5 with length=1000 Bytes
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_3 with length=1000 Bytes
2013-08-05 16:52:14,482 [ERROR] [Writer] - fail to perform write operation
com.intel.cosbench.api.storage.StorageException: com.amazonaws.AmazonClientException: Encountered an exception and couldn't reset the stream to retry
        at com.intel.cosbench.api.S3Stor.S3Storage.createObject(S3Storage.java:119)
        at com.intel.cosbench.driver.operator.Writer.doWrite(Writer.java:94)
        at com.intel.cosbench.driver.operator.Writer.operate(Writer.java:76)
        at com.intel.cosbench.driver.operator.AbstractOperator.operate(AbstractOperator.java:53)
        at com.intel.cosbench.driver.agent.WorkAgent.performOperation(WorkAgent.java:175)
        at com.intel.cosbench.driver.agent.WorkAgent.doWork(WorkAgent.java:161)
        at com.intel.cosbench.driver.agent.WorkAgent.execute(WorkAgent.java:118)
        at com.intel.cosbench.driver.agent.AbstractAgent.call(AbstractAgent.java:44)
        at com.intel.cosbench.driver.agent.AbstractAgent.call(AbstractAgent.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Caused by: com.amazonaws.AmazonClientException: Encountered an exception and couldn't reset the stream to retry
        at com.amazonaws.http.AmazonHttpClient.resetRequestAfterError(AmazonHttpClient.java:400)
        at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:356)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:190)
        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2974)
        at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1149)
        at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1014)
        at com.intel.cosbench.api.S3Stor.S3Storage.createObject(S3Storage.java:117)
        ... 13 more
Caused by: org.apache.http.conn.HttpHostConnectException: Connection to http://172.20.45.70:8080 refused

Not sure what am I doing wrong and would appreciate any help. Thanks!
Reply | Threaded
Open this post in threaded view
|

RE: COSBench on Hitachi Content Platform (HCP)- Writing data on all HCP nodes simultaneously

ywang19
Administrator
Nitesh,


Perhaps there are confusions in previous emails. I uses amplidata configuration as example to show the capability to assign different target storage node for different work, but the <storage> element for different storage type is different, the <storage> for amplidata is not applicable to S3.

Below sample should match your case, here I assume you will access  http://t1.xxx, http://t2.xxx and http://t3.xxx nodes, you may change them based on your real environment.

<workstage name="main">
      <work name="c1p0" workers="16" runtime="300">
       <storage type="s3" config="accesskey=XXX;secretkey=XXX;endpoint=http://t1.cluster45c.lab.archivas.com<http://t1.cluster-colo-035b.lab.archivas.com>" />
        <operation type="read" ratio="80" config="containers=u(1,32);objects=u(1,50)" />
        <operation type="write" ratio="20" config="containers=u(1,32);objects=u(51,100);sizes=c(64)KB" />
      </work>

      <work name="c2p0" workers="16" runtime="300">
       <storage type="s3" config="accesskey=XXX;secretkey=XXX;endpoint=http://t2.cluster45c.lab.archivas.com"/>
        <operation type="read" ratio="80" config="containers=u(1,32);objects=u(1,50)" />
        <operation type="write" ratio="20" config="containers=u(1,32);objects=u(51,100);sizes=c(64)KB" />
      </work>
      <work name="c3p0" workers="16" runtime="300">
       <storage type="s3" config="accesskey=XXX;secretkey=XXX;endpoint=http://t3.cluster45c.lab.archivas.com"/>
        <operation type="read" ratio="80" config="containers=u(1,32);objects=u(1,50)" />
        <operation type="write" ratio="20" config="containers=u(1,32);objects=u(51,100);sizes=c(64)KB" />
      </work>
    </workstage>


BTW, it’s appreciated if you’d like to post questions or issues on mailing list: http://cosbench.1094679.n5.nabble.com/, as we are trying to use it as the major source for Q&A.

Thanks,
-Y.G.


From: Nitesh Taneja [via cosbench] [mailto:ml-node+s1094679n37h31@n5.nabble.com]
Sent: Tuesday, August 06, 2013 5:05 AM
To: Wang, Yaguang
Subject: COSBench on Hitachi Content Platform (HCP)- Writing data on all HCP nodes simultaneously

Currently, I am using “endpoint” in my workload.xml file and specify a DNS for the target system, something like-

<storage type="s3" config="accesskey=XXX;secretkey=XXX;proxyhost=;proxyport=;endpoint=http://t1.cluster45c.lab.archivas.com"/><http://t1.cluster45c.lab.archivas.com%22/%3e>

Given this configuration, COSBench picks a single node in HCP (randomly), starts writing to it and it works great.


However, I need a little more flexibility in terms of choosing any or all nodes in the system to simultaneously write data to. I tried to replicate Amplistor configuration file by using this -

<workstage name="main1">
      <work name="main" workers="8" runtime="2">
     <storage type="ampli" config="host=172.20.45.70;port=8080" />
      <operation type="write" ratio="100" config="cprefix=s3testnode;containers=r(1,1);objects=r(1,10000000);sizes=c(1)KB" />
      </work>
    </workstage>


and got this error:
2013-08-05 16:54:17,590 [INFO] [Log4jLogManager] - will append log to file /var/home/grinder/cosbench-0.3.1.2/0.3.1.1/log/mission/M850424FB4E.log
2013-08-05 16:54:17,601 [ERROR] [Writer] - fail to perform write operation
com.intel.cosbench.api.storage.StorageException: org.apache.http.conn.HttpHostConnectException: Connection to http://172.20.45.70:8080 refused
        at com.intel.cosbench.api.amplistor.AmpliStorage.createObject(AmpliStorage.java:154)
        at com.intel.cosbench.driver.operator.Writer.doWrite(Writer.java:94)
        at com.intel.cosbench.driver.operator.Writer.operate(Writer.java:76)
        at com.intel.cosbench.driver.operator.AbstractOperator.operate(AbstractOperator.java:53)



Assuming that I probably need to use s3 as the storage, I tried this as well-

<workstage name="main1">
      <work name="main" workers="8" runtime="2">
     <storage type="s3" config="accesskey=XXX;secretkey=XXX;proxyhost=172.20.45.70;proxyport=8080" />
      <operation type="write" ratio="100" config="cprefix=s3testnode;containers=r(1,1);objects=r(1,10000000);sizes=c(1)KB" />
      </work>
    </workstage>


However, I keep getting this error-
2013-08-05 16:52:14,422 [INFO] [Log4jLogManager] - will append log to file /var/home/grinder/cosbench-0.3.1.2/0.3.1.1/log/mission/MA50406C949.log
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_1 with length=1000 Bytes
2013-08-05 16:52:14,451 [INFO] [S3Storage] - Creating s3testnode1\myobjects_8 with length=1000 Bytes
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_4 with length=1000 Bytes
2013-08-05 16:52:14,450 [INFO] [S3Storage] - Creating s3testnode1\myobjects_7 with length=1000 Bytes
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_2 with length=1000 Bytes
2013-08-05 16:52:14,450 [INFO] [S3Storage] - Creating s3testnode1\myobjects_6 with length=1000 Bytes
2013-08-05 16:52:14,450 [INFO] [S3Storage] - Creating s3testnode1\myobjects_5 with length=1000 Bytes
2013-08-05 16:52:14,449 [INFO] [S3Storage] - Creating s3testnode1\myobjects_3 with length=1000 Bytes
2013-08-05 16:52:14,482 [ERROR] [Writer] - fail to perform write operation
com.intel.cosbench.api.storage.StorageException: com.amazonaws.AmazonClientException: Encountered an exception and couldn't reset the stream to retry
        at com.intel.cosbench.api.S3Stor.S3Storage.createObject(S3Storage.java:119)
        at com.intel.cosbench.driver.operator.Writer.doWrite(Writer.java:94)
        at com.intel.cosbench.driver.operator.Writer.operate(Writer.java:76)
        at com.intel.cosbench.driver.operator.AbstractOperator.operate(AbstractOperator.java:53)
        at com.intel.cosbench.driver.agent.WorkAgent.performOperation(WorkAgent.java:175)
        at com.intel.cosbench.driver.agent.WorkAgent.doWork(WorkAgent.java:161)
        at com.intel.cosbench.driver.agent.WorkAgent.execute(WorkAgent.java:118)
        at com.intel.cosbench.driver.agent.AbstractAgent.call(AbstractAgent.java:44)
        at com.intel.cosbench.driver.agent.AbstractAgent.call(AbstractAgent.java:1)
        at java.util.concurrent.FutureTask$Sync.innerRun(FutureTask.java:334)
        at java.util.concurrent.FutureTask.run(FutureTask.java:166)
        at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
        at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
        at java.lang.Thread.run(Thread.java:636)
Caused by: com.amazonaws.AmazonClientException: Encountered an exception and couldn't reset the stream to retry
        at com.amazonaws.http.AmazonHttpClient.resetRequestAfterError(AmazonHttpClient.java:400)
        at com.amazonaws.http.AmazonHttpClient.executeHelper(AmazonHttpClient.java:356)
        at com.amazonaws.http.AmazonHttpClient.execute(AmazonHttpClient.java:190)
        at com.amazonaws.services.s3.AmazonS3Client.invoke(AmazonS3Client.java:2974)
        at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1149)
        at com.amazonaws.services.s3.AmazonS3Client.putObject(AmazonS3Client.java:1014)
        at com.intel.cosbench.api.S3Stor.S3Storage.createObject(S3Storage.java:117)
        ... 13 more
Caused by: org.apache.http.conn.HttpHostConnectException: Connection to http://172.20.45.70:8080 refused

Not sure what am I doing wrong and would appreciate any help. Thanks!
________________________________
If you reply to this email, your message will be added to the discussion below:
http://cosbench.1094679.n5.nabble.com/COSBench-on-Hitachi-Content-Platform-HCP-Writing-data-on-all-HCP-nodes-simultaneously-tp37.html
To start a new topic under cosbench-user, email ml-node+s1094679n17h11@n5.nabble.com<mailto:ml-node+s1094679n17h11@n5.nabble.com>
To unsubscribe from cosbench, click here<http://cosbench.1094679.n5.nabble.com/template/NamlServlet.jtp?macro=unsubscribe_by_code&node=1&code=eWFndWFuZy53YW5nQGludGVsLmNvbXwxfC0xNTQ4MjgwMTg2>.
NAML<http://cosbench.1094679.n5.nabble.com/template/NamlServlet.jtp?macro=macro_viewer&id=instant_html%21nabble%3Aemail.naml&base=nabble.naml.namespaces.BasicNamespace-nabble.view.web.template.NabbleNamespace-nabble.view.web.template.NodeNamespace&breadcrumbs=notify_subscribers%21nabble%3Aemail.naml-instant_emails%21nabble%3Aemail.naml-send_instant_email%21nabble%3Aemail.naml>
Reply | Threaded
Open this post in threaded view
|

RE: COSBench on Hitachi Content Platform (HCP)- Writing data on all HCP nodes simultaneously

Nitesh Taneja
Targeting the system at the tenant level using DNS doesn't give me control over which node gets picked to write the data to.




I tried to overcome this limitation by creating a hostname mapping entry  in /etc/hosts of my client machine and pointing the tenant to a specific node. Something like this-
172.20.XX.XX          t2.clusterxx.lab.domain.com

I also verified that its working correctly by pinging "t2.clusterxx.lab.domain.com" from the client and getting the response back from the IP mentioned in the hosts file.

However, running COSbench still picks up any node randomly and writes to it when I give "t2.clusterxx.lab.domain.com" as the endpoint instead of always choosing the specific node IP that I wanted.

Just wondering if there is a way to control that.



Reply | Threaded
Open this post in threaded view
|

RE: COSBench on Hitachi Content Platform (HCP)- Writing data on all HCP nodes simultaneously

ywang19
Administrator
Nitesh,

Are you conducting load balancing experiment through DNS? if yes, I assume you will publicize one host name, which then maps to a few different backend nodes dynamically. In this case, what COSBench should know is the public host name, and you don't need to configure backend node ip address in it, and it's your load balancer's duty to map the public host name to different backend node.

If it's not your case, and you just want to let COSBench interacts with a few nodes directly, you can assign different ip address for different <work> to guide load traffic.

If possible, could you paste the network topology?


-Y.G.