投稿

8月, 2014の投稿を表示しています

MariaDB, MySQLの冗長化、負荷分散の構成を考える

イメージ
WordPressのデータベースを複数サーバーで冗長化して、負荷分散しながら管理しやすく、将来的にも拡張しやすい構成を考えたときの覚書。 調査した関連技術 MariaDB Server スタンドアローン版。 他のサーバーとはレプリケーション機能で冗長化する。 10.0からは並列レプリケーションが実装されて同期スピードが速くなったらしい。 更新はマスターに。参照はスレーブからというのが一般的。 MariaDB Galera Cluster 複数のサーバーでお互いを監視して同期してくれる。 マスター、スレイブの概念がない。 全てのノードに対して更新/参照が可能で、一つのノードへの更新が全てに伝搬される。 ノードの追加・削除は自動でやってくれる。 負荷分散(ロードバランス)の仕組みは別途用意しないといけない。 MySQL Cluster 管理ノード、データノード、SQLノードでクラスタを実現する。 データノードがデータの一部を持ち合うこと(シャーディング)で負荷分散になる。その分ネットワークがボトルネックになりやすい。 「 MySQL Cluster 構築・運用バイブル 」が分かりやすい Spider Storage Engine 複数サーバー間でデータを分散させるシャーディングを実現可能なストレージエンジン。 分散されたデータの管理はSpiderが行うため、使う側は通常のテーブルと同じように扱える。 MariaDB 10.0.4からバンドルされている。 MySQL Proxy MySQL専用のロードバランサー。 MariaDBとの組み合わせで動作するのかな? 参考: 漢(オトコ)のコンピュータ道: MySQL Clusterへの接続方法 PHP mysqlnd_ms mysqlnd(MySQL Native Driver)のプラグイン。 設定に従いロードバランスしてくれる。情報少ない。 参考: PHP: mysqlndプラグイン と MySQL Proxyの比較 - Manual 参考: PHP: mysqlnd_ms - Manual Linux Vertual Server (LVS) Linuxの負荷分散ソリューションの仕組み。 LinuxカーネルにはIPVSというロードバランスソフトウェアが組み込まれているので、管...

CentOS6にRedmine2.5をInstallして2.4から移行

イメージ
新しいサーバーにRedmineをインストールしてデータ移行したときの覚書。 環境: CentOS 6.5, Ruby 2.1.2, Redmine 2.5.2, MariaDB 10.0.13   目次 バックアップ Rubyのインストール Redmineのインストール Redmineの初期設定とデータベースのテーブル作成 Railsサーバー「unicorn」のインストール nginxにリバースプロキシの設定を記述 データを移行   1.バックアップ phpMyAdminでエクスポートしとく   2.Rubyのインストール 公式サイトのドキュメントを参考に。 Redmine 2.5をCentOS 6.5にインストールする手順 | Redmine.JP Blog ビルドに必要なパッケージをインストール。 # yum install openssl-devel readline-devel zlib-devel curl-devel libyaml-devel # yum install ImageMagick ImageMagick-devel Ruby 2.1にも対応したらしいので最新のRuby 2.1.2をダウンロードしてインストールする。 # wget http://cache.ruby-lang.org/pub/ruby/2.1/ruby-2.1.2.tar.gz # tar xzvf ruby-2.1.2.tar.gz # cd ruby-2.1.2 # ./configure --disable-install-doc # make # make install bundlerのインストール。 # gem install bundler --no-rdoc --no-ri   3.Redmineのインストール phpMyAdminでRedmine用のデータベースを作っておく。文字コードは「utf8mb4」にした。redmine専用のユーザーも作成。 Redmineをダウンロードして設置。 # cd .. # wget http://www.redmine.org/releases/redmine-2.5.2.tar.gz # tar xzvf red...

【CentOS】さくらVPSサーバーの初期設定

イメージ
さくらVPSの初期設定を覚書。 環境: CentOS6.5 x86_64, Tera Term 4.83 目次 SSHの鍵認証設定 Firewall設定 起動サービス設定 ホスト名変更   1.SSHの鍵認証設定 初期のパスワード認証から鍵認証に切り替える。 まずは鍵を生成。Tera Termで簡単に作れる。 Tera Termのメニューの Setup → SSH KeyGenerator... RSAを選択して「Generate」。 「パスフレーズ」を入力してpublic keyとprivate keyを保存。 生成した公開鍵をサーバーに設定する。 # cd # mkdir .ssh # vi .ssh/authorized_keys 公開鍵をエディタで開いてコピペする。 他のユーザーが閲覧出来ないように権限変更 # chmod 600 .ssh/authorized_keys SSHの設定を開いて、鍵認証を「有効」、パスワード認証を「無効」にする。 # vi /etc/ssh/sshd_config PubkeyAuthentication yes PasswordAuthentication no 再起動。今の接続は切断されないから大丈夫。 # /etc/rc.d/init.d/sshd restart 別コンソールから今までのパスワード認証で接続できないのを確認。 今度は秘密鍵とパスフレーズを設定して接続できることを確認。下記のようなエラーが出るときは大抵パスフレーズを指定してないとき。 read error SSH2 private key file error:06065064:digital envelope routines:EVP_DecryptFinal_ex:bad decrypt TeraTerm Menuの場合はパスワードの欄にパスフレーズを入力する。   < 2014/09/18 Modified > SSHで日本語表示すると文字化けするので、システム言語をUTF8対応にする。 # vi /etc/sysconfig/i18n LANG="en_US.UTF-8" SYSFONT="latarcyrheb-sun16" ...

さくらVPSを複数台借りてローカルIPを割り振る

イメージ
さくらVPSでサーバーを複数台借りたあと、ローカルネットワークを設定したときの覚書。 環境: CentOS 6.5 x86_64 さくらVPSは同じリージョン内のサーバー同士を無料でローカルネットワーク化できる。スイッチの追加、設定方法は公式ドキュメントを参考に。 ローカルネットワーク接続|さくらのVPS|さくらインターネット公式サポートサイト スイッチをeth1に追加したあとOSに認識させる必要がある。 # cd /etc/sysconfig/network-scripts/ # cp ifcfg-eth0 ifcfg-eth1 # vi ifcfg-eth1 DEVICE="eth1" IPADDR="192.168.0.1" NETMASK="255.255.255.0" ONBOOT="yes" TYPE="Ethernet" IPV6INIT="no" IPV6_ROUTER="no" ネットワーク再起動 # /etc/rc.d/init.d/network restart 確認 # ifconfig 他のサーバーも同様にIPADDRだけ変えて設定。 それぞれローカルIPで接続出来るか確認する。 # ping 192.168.0.1   < Related Posts > 【Linux】IPアドレスを追加する 安くて汎用性のあるサーバーホスティング会社を探す

[Titanium]AndroidでTextFieldのhintTextの色を設定

イメージ
TextFieldのhintTextの色を設定したくて調べたときの覚書。Androidは色が濃いので入力してあるのか判断しづらい。 環境:Titanium SDK 3.3.0.GA, Android 前に カーソル(キャレット)の色を変えたときと同じ方法 で出来た。 カスタムスタイルを定義するXMLファイルを用意して色を指定する。 $ vi platform/android/res/values/styles.xml <?xml version="1.0" encoding="utf-8"?> <resources>     <style name="Theme.MyTheme" parent="Theme.AppCompat.Light">         <item name="android:textColorHint">#ccc</item>     </style> </resources> Android公式ドキュメントも参考に。 R.attr | Android Developers   < Related Posts > [Titanium] TextFieldにカーソル(キャレット)が表示されない Titaniumを使ったアプリと苦労した事とかのまとめ2013年