#proxyサーバからうつぞ #load averageみる root@swift-proxy01:~# curl http://xx.xx.xx.xx:6000/recon/load {"5m": 2.3199999999999998, "15m": 2.27, "processes": 5311, "tasks": "2/364", "1m": 2.4700000000000002} #memoryの情報チェックするぞ curl http://xx.xx.xx.xx:6000/recon/mem {"WritebackTmp": "0 kB", "SwapTotal": "1998840 kB", "Active(anon)": "337664 kB", "SwapFree": "1998840 kB", "DirectMap4k": "6756 kB", "KernelStack": "2936 kB", "MemFree": "128024 kB", "HugePages_Rsvd": "0", "Committed_AS": "4068192 kB", "Active(file)": "4061696 kB", "NFS_Unstable": "0 kB", "VmallocChunk": "34359370072 kB", "Writeback": "0 kB", "Inactive(file)": "15142944 kB", "MemTotal": "24731684 kB", "VmallocUsed": "331016 kB", "HugePages_Free": "0", "AnonPages": "368188 kB", "Active": "4399360 kB", "Inactive(anon)": "30712 kB", "CommitLimit": "14364680 kB", "Hugepagesize": "2048 kB", "Cached": "19014360 kB", "SwapCached": "0 kB", "VmallocTotal": "34359738367 kB", "Shmem": "252 kB", "Mapped": "9884 kB", "SUnreclaim": "811208 kB", "Unevictable": "64 kB", "SReclaimable": "3741636 kB", "Mlocked": "64 kB", "DirectMap2M": "25149440 kB", "HugePages_Surp": "0", "Bounce": "0 kB", "Inactive": "15173656 kB", "PageTables": "5080 kB", "HardwareCorrupted": "0 kB", "HugePages_Total": "0", "Slab": "4552844 kB", "Buffers": "190532 kB", "Dirty": "456 kB"} #Diskの情報もとれるぞ curl http://xx.xx.xx.xx:6000/recon/diskusage [{"device": "sdb1", "avail": 198553079808, "mounted": true, "used": 57811726336, "size": 256364806144}] #objectのreplicationタイムもとれる(´;ω;`) curl http://xx.xx.xx.xx:6000/recon/replication {"object_replication_time": 21.035725466410319} #asyncの情報もとれるんだけど、nullかえってきてる・・・ #ここは調べときます。 curl http://10.200.32.41:6000/recon/async {"async_pending": null} #swift clientからもたたけるんだな swift-recon object -r --zone 1 =============================================================================== --> Starting reconnaissance on 1 hosts =============================================================================== [2012-11-16 14:31:19] Checking on replication [replication_time] low: 21, high: 21, avg: 21.0, total: 21, Failed: 0.0%, no_result: 0, reported: 1 ===============================================================================
2012年11月22日木曜日
Openstack Swift recon太郎
Swiftにreconっていう機能があって、loadとかmemoryとかの情報がとれるみたい。
これを使って監視とかしたらいんかな。
英語よめねからよくわかんね・・・
Openstack Swift ACL太郎
SwiftのACLの方法でおじゃる。
#containerの作成 swift -A http://PROXY_VIP:8080/auth/v1.0 -U yattarou:yattarou -K yattarou post -r '.r:*' Container_Name #indexの作成 swift -A http://PROXY_VIP:8080/auth/v1.0 -U yattarou:yattarou -K yattarou post -m 'web-index:index.html' Container_Name #list設定 swift -A http://PROXY_VIP:8080/auth/v1.0 -U yattarou:yattarou -K yattarou post -m 'web-listings: true' Container_Name #ACLの確認 swift -A http://PROXY_VIP:8080/auth/v1.0 -U yattarou:yattarou -K yattarou stat Container_Name Account: AUTH_system Container: Container_Name Objects: 1 Bytes: 12 Read ACL: .r:* Write ACL: Sync To: Sync Key: Meta Web-Listings: true Meta Web-Index: index.html
Openstack swift rebalance太郎
SwiftでのRebalance手順まとめたお(*´ω`*)(*´ω`*)
レプリカの一台が復旧できない状態に鳴った場合を想定して、
nodeの切り離し、別のnodeの追加まとめた。
レプリカの一台が復旧できない状態に鳴った場合を想定して、
nodeの切り離し、別のnodeの追加まとめた。
#zone確認 root@swift-proxy01:/etc/swift# swift-ring-builder object.builder object.builder, build version 3 262144 partitions, 3 replicas, 3 zones, 3 devices, 0.00 balance The minimum number of hours before a partition can be reassigned is 1 Devices: id zone ip address port name weight partitions balance meta 0 1 xx.xxx.xx.41 6000 sdb1 1.00 262144 0.00 1 2 xx.xxx.xx.43 6000 sdb1 1.00 262144 0.00 2 3 xx.xxx.xx.44 6000 sdb1 1.00 262144 0.00 #ringからのremoce root@swift-proxy01:/etc/swift# swift-ring-builder object.builder remove z1-xx.xxx.xx.41/sdb1 d0z1-xx.xxx.xx.41:6000/sdb1_"" marked for removal and will be removed next rebalance. #ringへの追加 root@swift-proxy01:/etc/swift# swift-ring-builder object.builder add z1-xx.xxx.xx.45:6000/sdb1 1 Device z1-xx.xxx.xx:6000/sdb1_"" with 1.0 weight got id 3 #rebalance root@swift-proxy01:/etc/swift# swift-ring-builder object.builder rebalance Reassigned 262144 (100.00%) partitions. Balance is now 0.00. #zone確認 #xx.xxx.xx.41がはずれ、45が追加されていることがわかる。 root@swift-proxy01:/etc/swift# swift-ring-builder object.builder object.builder, build version 6 262144 partitions, 3 replicas, 3 zones, 3 devices, 0.00 balance The minimum number of hours before a partition can be reassigned is 1 Devices: id zone ip address port name weight partitions balance meta 1 2 xx.xxx.xx.43 6000 sdb1 1.00 262144 0.00 2 3 xx.xxx.xx.44 6000 sdb1 1.00 262144 0.00 3 1 xx.xxx.xx.45 6000 sdb1 1.00 262144 0.00 root@swift-proxy01:/etc/swift# #この時点ではrebalanceは動かないため、proxyサーバに、builderファイル、ringファイルを展開。container object accountにはringファイルを展開 #その後、swift-init all reload"で再読み込みすればrebalanceが開始される。
2012年11月9日金曜日
riak構築太郎
riakの構築手順だんお(*´ω`*)
#まずは準備 yum install gcc gcc-c++ glibc-devel make git glibc-devel make ncurses-devel openssl-devel autoconf #kerlおとしてビルド curl -O https://raw.github.com/spawngrid/kerl/master/kerl;chmod +x kerl ./kerl build R15B01 r15b01 #erlangインストール wget http://erlang.org/download/otp_src_R15B01.tar.gz tar zxvf otp_src_R15B01.tar.gz cd otp_src_R15B01 ./configure && make && sudo make install #riak入れる 先に、elrangをPATHに通しとくこと curl -O http://downloads.basho.com.s3-website-us-east-1.amazonaws.com/riak/1.2/1.2.1/riak-1.2.1.tar.gz tar zxvf riak-1.2.1.tar.gz cd riak-1.2.1 make rel #設定ファイル vim /opt/riak-1.2.1/rel/riak/etc/app.config ※protocol buffer使う場合 {pb_ip, "xxx.xxx.xxx.101" }, ※httpのポート指定 {http, [ {"xxx.xxx.xxx.101", 8098 } ]}, ※bitcask使う場合 {storage_backend, riak_kv_bitcask_backend}, #bitcaskの格納先変更 %% Bitcask Config {bitcask, [ {data_root, "/data/riak/bitcask"} ]}, #vm.args編集 vim /opt/riak-1.2.1/rel/riak/etc/vm.args -name riak@XXX.XXX.XXX.101 #bitcaskのデータ格納先をつくっておく。とりまxfsでマウント。 #option /dev/sdb1 on /data type xfs (rw,noatime,nodiratime,nobarrier,logbufs=8) cd /data mkdir -p riak/ring mkdir -p riak/bitcask chown -R riak: riak/* #起動 /opt/riak-1.2.1/rel/riak/bin/riak start #いったんステータスみてみる riak-admin member-status Attempting to restart script through sudo -H -u riak ================================= Membership ================================== Status Ring Pending Node ------------------------------------------------------------------------------- valid 100.0% -- 'riak@xxx.xxx.xxx.101' ------------------------------------------------------------------------------- Valid:1 / Leaving:0 / Exiting:0 / Joining:0 / Down:0 #ほかの何台かのnodeをクラスタに組み込んでみる ./riak-admin cluster join riak@xxx.xxx.xxx.102 Success: staged join request for 'riak@xxx.xxx.xxx.102' to 'riak@xxx.xxx.xxx.101' ※なんか、同じサーバから複数の台数にjoinさせようとすると失敗するので注意 #clusterがどうなるかのチェック ./riak-admin cluster plan =============================== Staged Changes ================================ Action Nodes(s) ------------------------------------------------------------------------------- join 'riak@xxx.xxx.xxx.101' join 'riak@xxx.xxx.xxx.102' join 'riak@xxx.xxx.xxx.103' join 'riak@xxx.xxx.xxx.104' ------------------------------------------------------------------------------- NOTE: Applying these changes will result in 2 cluster transitions ############################################################################### After cluster transition 1/2 ############################################################################### ================================= Membership ================================== Status Ring Pending Node ------------------------------------------------------------------------------- valid 20.3% 25.0% 'riak@xxx.xxx.xxx.101' valid 20.3% 25.0% 'riak@xxx.xxx.xxx.102' valid 20.3% 25.0% 'riak@xxx.xxx.xxx.103' valid 20.3% 25.0% 'riak@xxx.xxx.xxx.104' ------------------------------------------------------------------------------- Valid:4 / Leaving:1 / Exiting:0 / Joining:0 / Down:0 Transfers resulting from cluster changes: 48 [5/4071] 3 transfers from 'riak@xxx.xxx.xxx.101' to 'riak@xxx.xxx.xxx.103' 3 transfers from 'riak@xxx.xxx.xxx.102' to 'riak@xxx.xxx.xxx.103' 3 transfers from 'riak@xxx.xxx.xxx.104' to 'riak@xxx.xxx.xxx.103' 3 transfers from 'riak@xxx.xxx.xxx.101' to 'riak@xxx.xxx.xxx.102' 3 transfers from 'riak@xxx.xxx.xxx.103' to 'riak@xxx.xxx.xxx.102' 3 transfers from 'riak@xxx.xxx.xxx.104' to 'riak@xxx.xxx.xxx.102' 3 transfers from 'riak@xxx.xxx.xxx.102' to 'riak@xxx.xxx.xxx.101' 3 transfers from 'riak@xxx.xxx.xxx.101' to 'riak@xxx.xxx.xxx.104' 3 transfers from 'riak@xxx.xxx.xxx.103' to 'riak@xxx.xxx.xxx.101' 3 transfers from 'riak@xxx.xxx.xxx.102' to 'riak@xxx.xxx.xxx.104' 3 transfers from 'riak@xxx.xxx.xxx.104' to 'riak@xxx.xxx.xxx.101' 3 transfers from 'riak@xxx.xxx.xxx.103' to 'riak@xxx.xxx.xxx.104' ############################################################################### After cluster transition 2/2 ############################################################################### ================================= Membership ================================== Status Ring Pending Node ------------------------------------------------------------------------------- valid 25.0% -- 'riak@xxx.xxx.xxx.101' valid 25.0% -- 'riak@xxx.xxx.xxx.102' valid 25.0% -- 'riak@xxx.xxx.xxx.103' valid 25.0% -- 'riak@xxx.xxx.xxx.104' ------------------------------------------------------------------------------- Valid:4 / Leaving:0 / Exiting:0 / Joining:0 / Down:0 #clusterの状態をキメル ./riak-admin cluster commit Cluster changes committed #状態みてみる #ゆくりリバランスされるみたい ./riak-admin member-status ================================= Membership ================================== Status Ring Pending Node ------------------------------------------------------------------------------- valid 39.1% 20.3% 'riak@xxx.xxx.xxx.101' valid 40.6% 20.3% 'riak@xxx.xxx.xxx.102' valid 7.8% 20.3% 'riak@xxx.xxx.xxx.103' valid 6.3% 20.3% 'riak@xxx.xxx.xxx.104' ------------------------------------------------------------------------------- Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0 ./riak-admin member-status ================================= Membership ================================== Status Ring Pending Node ------------------------------------------------------------------------------- valid 25.0% -- 'riak@xxx.xxx.xxx.101' valid 25.0% -- 'riak@xxx.xxx.xxx.102' valid 25.0% -- 'riak@xxx.xxx.xxx.103' valid 25.0% -- 'riak@xxx.xxx.xxx.104' ------------------------------------------------------------------------------- Valid:5 / Leaving:0 / Exiting:0 / Joining:0 / Down:0 #cluster外すときは riak-admin cluster leave riak@xxx.xxx.xxx.101 #からのplan commitでいける #bucketの作成 #細かいパラメータはまだしらべてるのでおまちを。 curl -i -H "Content-Type: application/json" http://xxx.xxx.xxx.101:8098/riak/yattarou HTTP/1.1 200 OK Vary: Accept-Encoding Server: MochiWeb/1.1 WebMachine/1.9.0 (someone had painted it blue) Date: Fri, 09 Nov 2012 08:07:57 GMT Content-Type: application/json Content-Length: 426 {"props":{"name":"yattarou","allow_mult":false,"basic_quorum":false,"big_vclock":50,"chash_keyfun":{"mod":"riak_core_util","fun":"chash_std_keyfun"},"dw":"quorum","last_write_wins":false,"linkfun":{"mod":"riak_kv_wm_link_walker","fun":"mapreduce_linkfun"},"n_val":3,"notfound_ok":true,"old_vclock":86400,"postcommit":[],"pr":0,"precommit":[],"pw":0,"r":"quorum","rw":"quorum","small_vclock":50,"w":"quorum","young_vclock":20}} #objectのup curl -v -T test.jpg -X PUT -H "Content-Type: image/jpeg http://xxx.xxx.xxx.101/riak/testいったんここまで。
登録:
投稿 (Atom)