11. 本日の内容
・Before you Begin
・Download Aerospike Server
・Install a Single Node
・Configuring a Cluster
・Install on Amazon EC2
・Use Intermap Trial Server
12. 本日の内容
・Before you Begin
・Download Aerospike Server
・Install a Single Node
・Configuring a Cluster
・Install on Amazon EC2
・Use Intermap Trial Server
13. Before you Begin
・Aerospike v3は新規インストールすべし、v2からv3へのアップデート
はまだサポートされてない
・サポートOSは
CentOS6(RHEL6)
Debian6
Ubuntu12.04
・性能評価にVMやAWSはお勧めしない、適切なハードカスタマイズによ
り性能が出る製品のため
15. Before you Begin
●推奨ハード
・ミニマムでは
CPU1つQuadCore,Memory4G(4Gで6400万インデックス),StorageはSSDか
インメモリ,Networkは1G
・SSD:AerospikeはSSD活用の為に最適化されたデータベース
SSDはランダムリードに最適。ニアRAMレイテンシ。永続性提供。
Copy On Write採用で高い耐久性
SSDにFileSystemを使わずBlockDeviceとして使う
SSDはJBODにし、ただのディスクの束とする。RAIDは書き込みオーバーヘッドに
なるので非推奨、RAIDコントローラ挟むならSingleRAID0
SSDはオーバープロビジョニングして使うことでパフォーマンスが向上
※GCとWear-levelingの補助でコントローラに与えられるスペースとなる
SSDのデフラグは不要。Aerospikeが定期的に行う。infoレベルのログ出してみた↓
Apr 28 2014 01:55:54 GMT: INFO (drv_ssd): (storage/drv_ssd.c:1135) /dev/sdc defrag curr_pos
6099967 wblocks:0 recs:0 waits:0 lock-time:157 ms total-time:157 ms
Apr 28 2014 01:55:54 GMT: INFO (drv_ssd): (storage/drv_ssd.c:1135) /dev/sdb defrag curr_pos
6099967 wblocks:0 recs:0 waits:0 lock-time:158 ms total-time:158 ms
16. Before you Begin
・Network:
TCP,1G or 10G,Multicast or Unicast
デフォルト設定だと1ノード 100kTPSが限界
※CPUの”si”システム割り込み時間には注意が必要
通信暗号化は非対応、サーバーに複数NICの場合は別設定が必要*
・DISK
実行可能ファイルや設定ファイル格納にHDDを使う
永続性ファイルの推奨サイズはRAMに格納されたデータの8倍
回転速度は10K,15K,7200RPMと差はない。7200RPMでよい
・CPU
get/setクエリの単純な性質のため、CPU性能に強い依存関係はない。
HTオン推奨、2ソケット使用してもパフォーマンス改善なし
・Memory
RAMにインデックスデータ格納。インデックスはレコードごとに64バイト
メモリ種類ではパフォーマンスに影響ない、容量が大事
21. 本日の内容
・Before you Begin
・Download Aerospike Server
・Install a Single Node
・Configuring a Cluster
・Install on Amazon EC2
・Use Intermap Trial Server
22. Install a Single Node
●OSセットアップ
特殊なことはない
インスト作業はrootでやってねと
selinux,iptables止めようね。ntp設定しようね、くらい。
その他よしなに
23. Install a Single Node
●SSD/Flash Setup
Aerospikeはフラッシュ(SSD)に最適化されたアーキテクチャで設計されました。
ディスクとは多少違います。
まずは最適なSSDであることを確認しておく(Aerspikeに推奨SSDページあり)
SSD接続は直結orRAIDバススルー(JBOD)モード、やもなくRAID使う場合は
SingleRAID0(今回うちはこれ)
AerospikeはSSDに直接IO、SSDをファイルシステム介さずRAWデバイスとし
てIOさせる
セットアップ↓
-SSD not using RAID
-SSD with RAID
-SSD initialization
24. Install a Single Node
-SSD not using RAID
※今回RAIDありのサーバーを使った為ここは未検証
物理的なSSD搭載完了後、RAIDコントローラを使っている場合は、バススルー(JBOD)モードにする
以下手順を実施。ただ最新のSSDだと不要な場合もある。
AHCI有効確認。一般的に新しいSSDでは有効
NCQ有効確認。
25. Install a Single Node
-SSD not using RAID
・パーティションあったら削除
fdisk /dev/sdb
Delete the partition by entering: d
Optionally, verify setting is as desired: v
Commit the changes: w
・AHCI有効確認(実マニュアルはコマンドおかしいのでこっちでいいかも↓)
有効化はBIOSで
# lspci -vvnn | grep ahci
Kernel driver in use: ahci
Kernel modules: ahci
AHCI有効かはBIOSで(詳細はBIOSマニュアル参照)
・NCQ有効確認(たぶん・・)
有効化はBIOSで
# dmesg | fgrep "ncq"
ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ems apst
26. Install a Single Node
-SSD not using RAID
・Setup for select drives(最近のSSDは不要)
Validate that that the drive is not frozen
wget http://downloads.sourceforge.net/project/hdparm/hdparm/hdparm-9.37.tar.gz
tar -zxvf hdparm-9.37.tar.gz
cd hdparm-9.37
make (sudo yum install make, if you don't have make)
./hdparm -I /dev/<deviceID>
frozen状態の場合、SSD取り外し再び接続や数秒サスペンドさせる。” rtcwake -m mem -s 180”
27. Install a Single Node
-SSD not using RAID
・オーバープロビジョニング(OP)
今回つかわなかったのでざっくりと
# ./hdparm --user-master u --security-set-pass test /dev/<deviceID>
# ./hdparm --user-master u --security-erase test /dev/<deviceID>
# ./hdparm -N /dev/sdb
/dev/sdb:
max sectors = 468862128/468862128, HPA is disabled
# ./hdparm -NpXXXXXXXX --yes-i-know-what-i-am-doing /dev/<deviceID>
# ./hdparm -N /dev/<deviceID>
# ./hdparm -N /dev/sdb
/dev/sdb:
max sectors = 370401081/468862128, HPA is enabled
※ Calculate the over-provisioning value by multiplying the denominator by 79%. For example, in this case,
we would calculate: 468862128 x .79 = 370401081.
Set the over-provisioning:
28. Install a Single Node
-SSD Setup with RAID
RAIDコントローラがバススルー(JBOD)モードが設定できればこの章はパスしてOK
物理的なSSD搭載完了後
・RAIDコントローラパラメータ設定
・ドライブにパーティションなし
・オーバープロビジョニング設定
・RAIDコントローラパラメータ
(例はDELLの場合)
SSD1本ごとにRAID0で128KB strips
ReadPolicy:No Read Ahead
WritePolicy:Write Through
Enable:NCQ/AHCI*
*DELLの場合AHCIデフォルト有効
29. Install a Single Node
-SSD Setup with RAID
・RAIDコントローラパラメータ(例DELL)
# /opt/dell/srvadmin/bin/omreport chassis biossetup | grep AHCI
Embedded SATA : AHCI Mode
# dmesg | fgrep "ncq"
ahci 0000:00:1f.2: flags: 64bit ncq sntf pm led clo pio slum part ems apst
# /opt/dell/srvadmin/bin/omreport storage vdisk | egrep 'Stripe|Read Policy'
Read Policy : Adaptive Read Ahead
Stripe Element Size : 64 KB
Read Policy : No Read Ahead
Stripe Element Size : 128 KB
Read Policy : No Read Ahead
30. Install a Single Node
-SSD Setup with RAID
・オーバープロビジョニング設定
事前にパーティションが切られていたらfdiskで削除
オーバープロビジョニング(OP):ディスクコントローラ利用領域を29%確保させてあげることでパ
フォーマンス向上
fdisk /dev/sdb
Look at the partition table by entering p
Delete the partition (if one exists) by entering: d
Commit the changes and exit: w
Over-Provision with fdisk
To create a new partition enter n
To make it the primary partition enter p
For the partition number enter 1
Specify the first cylinder enter 1
Specify the last cylinder ? multiply the proposed (default) value by 0.71 (29%をOPする場合、
21%でもいいかもしれない)
Verify the partition table by entering p
Commit the changes by entering w
32. Install a Single Node
●Unpack and Install
tarボール解凍してrpmでOK
コマンドそのまま(雑でごめんね) ↓
tar xvfz aerospike-trial-server-3.2.3-el6.tgz
cd aerospike-trial-server-3.2.3-el6
rpm -ivh aerospike-tools-3.2.2-1.el6.x86_64.rpm
rpm -ivh aerospike-trial-server-3.2.3-1.el6.x86_64.rpm
33. Install a Single Node
●Unpack and Install
AMC(AerospkeManagementConsole)も
rpm -ivh aerospike-management-console-3.3.0-el5.x86_64.rpm
アクセス↓http://xxxxx:8081
34. Install a Single Node
●Starting and stopping the server (and Configuration)
コンフィグにキー入れてスタート。それだけ。
無料版の場合はユーザー登録時にもらったアカウントキーをユーザーセクションに追記
vi /etc/aerospike/aerospike.conf
--------------------
# This stanza must come first.
service {
:
trial-account-key xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx
:
}
--------------------
起動
/etc/init.d/aerospike start
/etc/init.d/aerospike status
asd (pid 7625) を実行中...
ログ確認
以下の”すぐにケーキがあるよ!”と出てれば起動OK。意味は不明。
cat /var/log/aerospike/aerospike.log | grep cake
Apr 28 2014 02:06:47 GMT: INFO (as): (base/as.c:744) service ready: soon there will be cake!
停止
/etc/init.d/aerospike stop
35. Install a Single Node
●Starting and stopping the server (and Configuration)
クラスタ状態はこの辺で。IPとか出るので割愛しちゃいますが
asmonitor -e "asinfo -v 'services'“
asmonitor -e "info"
36. Install a Single Node
● Verify Database Operation
# cli -h 127.0.0.1 -n test -o set -k Uehara -b name -v "Uehara, Inc."
succeeded: key = Uehara set= bin= name value= Uehara, Inc.
# cli -h 127.0.0.1 -n test -o set -k Uehara -b address -v "Dougenzaka, 1234"
succeeded: key = Uehara set= bin= address value= Dougenzaka, 1234
# cli -h 127.0.0.1 -n test -o set -k Uehara -b email -v "hogehoge@hogehoge"
succeeded: key = Uehara set= bin= email value= hogehoge@hogehoge
# cli -h 127.0.0.1 -n test -o get -k Uehara
{'email': 'hogehoge@hogehoge', 'name': 'Uehara, Inc.', 'address': 'Dougenzaka, 1234'}
※cliのツールは、基本的な検証にのみ使用されることを意図。エアロデータベースは、コマンドラ
インツールを介して使用されるものではない。すべてのトランザクションのための新しい接続を作
成する非効率性は圧倒的になります。
37. 本日の内容
・Before you Begin
・Download Aerospike Server
・Install a Single Node
・Configuring a Cluster
・Install on Amazon EC2
・Use Intermap Trial Server
41. 本日の内容
・Before you Begin
・Download Aerospike Server
・Install a Single Node
・Configuring a Cluster
・Install on Amazon EC2
・Use Intermap Trial Server
42. Use Intermap Trial Server
・以下の最適なハードウェアスペックのエアスパプリインストールサー
バーをIntermapからトライアルで2週間アクセス権を貸してくれるらし
い?
Aerospike Node Servers (x2)
2 x Xeon E5-2620 CPU
64GB RAM
1 x 1TB SATA HDD
2 x 240GB SSD
Ubuntu 12.04 64-bit
※もしサーバー借りたら標準で付いてるベンチツールで簡単なベンチして
おきましょう。
43. Use Intermap Trial Server
クライアントサーバーにはAerospike Java SDKがプリンストールされていて、
ベンチツールも入ってる。※エアスパのパフォーマンスはハードで異なる
例えば、ライト50%リード50%で実施し、合計で58000TPS達成した
run_benchmarks -h <seed_ip> -p <port> -n test -k 10000000 -l 30 -s
1 -o S:1500 -w RU,50 -z 32
n:Namespace
k:Nuber of Keys
l:Size of key(byte)
s:Key starts at
o:Type and size of value
w:Operation type
T:Timeout
z:Thread count