Hi Wido, Thanks for the advice, I'm now able to add the RBD pool as primary storage.
Many thanks! :) Cheers. On Thursday, July 11, 2013, Wido den Hollander wrote: > Hi, > > On 07/10/2013 03:42 PM, Chip Childers wrote: > >> Cc'ing Wido, our resident Ceph expert. ;-) >> >> > Hehe ;) > > On Wed, Jul 10, 2013 at 05:45:25PM +0800, Indra Pramana wrote: >> >>> Dear all, >>> >>> I am installing CloudStack 4.1.0 (upgraded from 4.0.2) and I also have a >>> Ceph cluster running. However, I am having issues in adding the RBD as >>> primary storage. Tried to follow the instruction here, but unable to make >>> it work: >>> >>> http://ceph.com/docs/master/**rbd/rbd-cloudstack/<http://ceph.com/docs/master/rbd/rbd-cloudstack/> >>> >>> I have setup a pool on the Ceph cluster. The status of the cluster is >>> healthy. Since I am using Ubuntu 12.04.2 LTS (Precise) for the >>> hypervisors, >>> I also have compiled libvirt manually to ensure that the version 0.9.13 >>> is >>> installed (previously it's 0.9.8). >>> >>> > You can also use the Ubuntu Cloud Archive, I still need to get the docs > updated for that. > > I described the process in a blogpost: http://blog.widodh.nl/2013/06/** > a-quick-note-on-running-**cloudstack-with-rbd-on-ubuntu-**12-04/<http://blog.widodh.nl/2013/06/a-quick-note-on-running-cloudstack-with-rbd-on-ubuntu-12-04/> > > indra@hv-kvm-01:~/rbd$ ceph >>> ceph> health >>> HEALTH_OK >>> >>> indra@hv-kvm-01:~$ ceph osd lspools >>> 0 data,1 metadata,2 rbd,3 sc1, >>> >>> root@hv-kvm-01:/home/indra# libvirtd --version >>> libvirtd (libvirt) 0.9.13 >>> >>> I tried to add Primary Storage into the Cloudstack zone which I have >>> created: >>> >>> Add Primary Storage: >>> >>> Zone: my zone name >>> Pod: my pod name >>> Cluster: my cluster name >>> Name: ceph-rbd-pri-storage >>> Protocol: RBD >>> RADOS Monitor: my first Ceph monitor IP address >>> RADOS Pool: sc1 (the pool name on Ceph cluster) >>> RADOS User: client.admin >>> RADOS Secret: /etc/ceph/ceph.client.admin.**keyring (keyring file >>> location) >>> >> > This is your problem. That shouldn't be the location of the file, but it > should be the secret, which is a base64 encoded string. > > $ ceph auth list > > That should tell you what the secret is. > > Storage Tags: rbd > > This is the error message when I tried to add the primary storage by > clicking OK: > > DB Exception on: com.mysql.jdbc.**JDBC4PreparedStatement@4b2eb56**: > INSERT INTO > storage_pool (storage_pool.id, storage_pool.name, storage_pool.uuid, > storage_pool.pool_type, storage_pool.created, storage_pool.update_time, > storage_pool.data_center_id, storage_pool.pod_id, > storage_pool.available_bytes, storage_pool.capacity_bytes, > storage_pool.status, storage_pool.scope, storage_pool.storage_provider_** > id, > storage_pool.host_address, storage_pool.path, storage_pool.port, > storage_pool.user_info, storage_pool.cluster_id) VALUES (217, > _binary'ceph-rbd-pri-storage', > _binary'a226c9a1-da78-3f3a-**b5ac-e18b925c9634', 'RBD', '2013-07-10 > 09:08:28', null, 2, 2, 0, 0, 'Up', null, null, null, _binary'ceph/ > ceph.client.admin.keyring@10.**237.11.2/sc1<http://ceph.client.admin.keyring@10.237.11.2/sc1>', > 6789, null, 2) > > On the management-server.log file: > > 2013-07-10 17:08:28,845 DEBUG [cloud.api.ApiServlet] (catalina-exec-2:null) > ===START=== 192.168.0.100 -- GET > command=createStoragePool&**zoneid=c116950e-e4ae-4f23-**a7e7- > 74a75c4ee638&podId=a748b063-**3a83-4175-a0e9-de39118fe5ce&** > clusterid=1f87eb09-324d-4d49-**83c2-88d84d7a15df&name=ceph-** > rbd-pri-storage&url=rbd%3A%2F%**2Fclient.admin%3A_etc%2Fc > eph%2Fceph.client.admin.**keyring%4010.237.11.2%2Fsc1&** > tags=rbd&response=json&**sessionkey=**rDRfWpqeKfQKbKZtHr398ULV%2F8k%** > 3D&_=1373447307839 > 2013-07-10 17:08:28,862 DEBUG [cloud.storage.**StorageManagerImpl] > (catalina-exec-2:null) createPool Params @ scheme - rbd storageHost - null > hostPath - /ceph/ceph.client > .admin.keyring@10.237.11.2/sc1 port - -1 > 2013-07-10 17:08:28,918 DEBUG [cloud.storage.**StorageManagerImpl] > (catalina-exec-2:null) In createPool Setting poolId - 217 uuid - > a226c9a1-da78-3f3a-b5ac-**e18b925c9634 z > oneId - 2 podId - 2 poolName - ceph-rbd-pri-storage > 2013-07-10 17:08:28,921 DEBUG [db.Transaction.Transaction] > (catalina-exec-2:null) Rolling back the transaction: Time = 3 Name = > persist; called by -Transaction.rollbac > k:890-Transaction.removeUpTo:**833-Transaction.close:657-** > TransactionContextBuilder.**interceptException:63-** > ComponentInstantiationPostProc**essor$InterceptorDispatcher.**interce > pt:133-StorageManagerImpl.**createPool:1378-** > StorageManagerImpl.createPool:**147-CreateStoragePoolCmd.** > execute:123-ApiDispatcher.**dispatch:162-ApiServer.** > queueCommand:505-ApiSe > rver.handleRequest:355-**ApiServlet.processRequest:302 > 2013-07-10 17:08:28,923 ERROR [cloud.api.ApiServer] (catalina-exec-2:null) > unhandled exception executing api command: createStoragePool > com.cloud.utils.exception.**CloudRuntimeException: DB Exception on: > com.mysql.jdbc.**JDBC4PreparedStatement@4b2eb56**: INSERT INTO > storage_pool ( > storage_pool.id, storage_pool > .name, storage_pool.uuid, storage_pool.pool_type, storage_pool.created, > storage_pool.update_time, storage_pool.data_center_id, storage_pool.pod_id, > storage_pool.availab > le_bytes, storage_pool.capacity_bytes, storage_pool.status, > storage_pool.scope, storage_pool.storage_provider_**id, > storage_pool.host_address, storage_pool.path, storage_ > pool.port, storage_pool.user_info, storage_pool.cluster_id) VALUES (217, > _binary'ceph-rbd-pri-storage', > _binary'a226c9a1-da78-3f3a-**b5ac-e18b925c9634', 'RBD', '2013-07-1 > 0 09:08:28', null, 2, 2, 0, 0, 'Up', null, null, null, _binary'ceph/ > ceph.client.admin.keyring@10.**237.11.2/sc1<http://ceph.client.admin.keyring@10.237.11.2/sc1>', > 6789, null, 2) > at > com.cloud.utils.db.**GenericDaoBase.persist(**GenericDaoBase.java:1342) > at > com.cloud.storage.dao.**StoragePoolDaoImpl.persist(** > StoragePoolDaoImpl.java:232) > at > com.cloud.utils.component.**ComponentInstantiationPostProc** > essor$InterceptorDispatcher.**intercept(**ComponentInstantiationPostProc** > es > >