外部サーバ

最近は外部サーバーがメインで構築Ansible化してから移行が自動化されたので頻繁に移行する日々。

期間サービス名OSなど用途備考
2010/02-2011/01CoreServer mini不明wiki,blogなど夜アクセス遅かった
2011/01-2012/04さくらのVPS 512CentOS 5wiki,blog,subversion時折httpdプロセス滞留でメモリ不足気味。いつか再インストールしようと思ったけど結局そのまま利用。7月に一回さくらのメンテ都合で再起動有り
2012/04/04-2014/01/06さくらのVPS980(v3) 1G HDD100GCentOS 6.2値段同じで上位プランへアップグレード。トラブル皆無
2014/01/06-2015/05/31さくらのVPS980(v3) 1G HDD100GCentOS 6.4トラブルなしだが移行訓練を兼ねて再構築。4月20日前後で移行完了
2015/04/03-2016/01/28さくらのVPS2G (v4)SSD 50GCentOS 7.0→CentOS 6.4メインサーバーでアクセスが多いblogサイトのみ最後まで移行せずだが1月末に完全移行!1GだとTomcatが重いので、スペックアップとCentOS7慣れる意味で平行稼働して移行だが、結局CentOS6.4に戻した
2015/11/16-12/06カゴヤクラウド VPS1G (v4)CentOS 7.0CentOS7でPHPが遅い疑惑を確かめるべくwikiだけ稼働。徐々に増やす予定wikiでの運用問題なし
2015/12/06-2015/12/25Azure A1CentOS 6Ansible全自動移行テストを兼ねてさまざまなvpsを部分的に運用wiki,postgres,svnなど対象を増やした
2015/12/25-2016/01/28カゴヤクラウド VPS1G (v4)CentOS 7ほぼ自動構築化してblog以外を移行自動構築が順調に出来上がった頃
2016/01/28-2016/02/05Azure A2CentOS 7.1すべてを移行したが、I/Oが遅い割に一日400円かかるのでクレジット不足無駄なリソース削除していなかったので、最後に0円割って課金された!
2016/02/05-2016/03/10カゴヤクラウド VPS1GCentOS 7この後さくらのVPS復帰予定途中でCloudFrontを導入したため、余裕ありまくり。調子に乗ってElasticSearch入れたら落ちたという!
2016/03/10-2016/03/26Azure A2CentOS 7.1思いつきで移行して、virtualhostのservername設定ミス→リダイレクトループをCloudFrontがキャッシュしてひどいことに!wiki,tools,wwwを移行AWS新アカウント移行も合わせて行った
2016/03/27-2016/04/03カゴヤクラウド VPS1GCentOS 7さくら再構築までのつなぎ
2016/04/03-2016/05/06さくらのVPS 2GCentOS 7ようやく本命で安定運用
2016/05/07-2016/05/31Azure A2CentOS 7.1西日本アカウントで少し安いのでどこまで持つか(1日300円)。月初予想グラフは1ヶ月1000円以上残すが、あてにならん。17日にはまともなデータが出てきた6/12に尽きる予定。その後に一日260円なので6/3に切れると現実的な値が出た!Sakuraも再インストールして課金切れに備えるつもりが直前あわてて作成
2016/05/31-2016/06/30さくらのVPS 2GCentOS 7Azureは三日残して切りのいい月末に移行2GだとESが使えないかも
2016/06/30-2016/07/15Azure A2CentOS 7.2二ヶ月分の課金を利用して一月持たせる。7/14期限は1500円残しなのでもっと早くやっておけば・・・。7/15大障害発生で2週間のjarticと2時間のデータロスト
2016/07/15-2016/07/15さくらのVPS 2GCentOS 7Azureがクソすぎるので緊急代役しかし反省させるべく一日限り
2016/07/16-2016/08/11,8/12-9/09Azure A1CentOS 7.2A1だと1日154円で31日ある月をまたぐと500円程度残る。大障害発生の汚名返上なるか?svnが謎の自宅からアクセス不能に伴い再構築でさくら一日挟み戻る。ElasticSearch系を止めるとメモリはほぼ5割程度。たまに攻撃があるとCPU上がるがほぼ一桁
2016/09/09-2016/10/27さくらVPS 2GCentOS 7.2Azureは攻撃がすごい&Dockerに専念させるために空けておくなぜかazure経由だとansibleできず。別マシンから実施。移行漏れでMyJCBバッチ三日動かず。
2016/10/28-2016/11/24Azure A2 のちA1CentOS 7.2時折移行してないと忘れるので!課金不足が判明してA1に変更
2016/11/24-2016/12/10さくらのVPS公式 CentOS 7カスタムOSにCentOS7追加されて以後初挑戦10/31日に追加されていたので急遽入れ替え。しかしviの設定がまさにデフォルトだったりして文字化け
2016/12/10-2017/01/15Azure A2 のちA1CentOS 7.2時折移行してないと忘れるので!課金不足が判明してA1に変更
2017/01/15-2017/02/06さくらVPS 2GCentOS 7Azure7.3入替予定なのでいったん移ってもらう。ほぼノートラブル!
2017/02/07-3/10Azure A2CentOS 7.3ノートラブルと思いきやCloudFrontでなぜかwwwに飛ぶようになりキャッシュクリア!
2017/03/10-6/11さくらVPS 2G with WAFCentOS 7WAF導入切替時にVitrualHostが効かない問題。結局再起動忘れという・・・。WAFを有効にしたらpukiwikiがほぼ全滅のため除外設定を入れた
2017/06/11-6/17Azure A2CentOS 7.3さくらのクラウド利用のため短期間
2017/06/17-6/28さくらのクラウド 8GCentOS 7.3さくらのクラウド。かなり快適でVPSと大差なし。もっと有効活用すべきでした!
2017/06/29-9/17さくらVPS 2G without WAFCentOS 7WAFOFF前回こりごりしたのでWAFOFF
2017/09/17-10/12Azure A1CentOS 7.3MSDNラスト!

歴代の自宅サーバー

2002/12ぐらいにマシンを買って、めずらしく金をかけてファンレスにして試運転開始。初期のころは割とマシンがおかしくなるケースがあったけど、リムーバブルケースをやめてからはほぼトラブル皆無。通算稼働1000日越えも当たり前に。2010年ごろからメインは外部サーバーに移したので、軽い用途中心だが、ファイルサーバーはもはや手放せない。DN2820まではMAX2GBのサーバーが多かったが、一気に8GBで贅沢にいろいろ実験できる。

期間マシンOSMEMORY連続稼動日数通算備考
2003/05/21-2003/07/25PC/List/TerminatorK7RedHat7.3256M6565連続稼動記録らしいもの樹立
2003/08/11-2003/11/08PC/List/TerminatorK7RedHat7.3256M8989多分上記と同じ構成
2003/11/09-2004/04/12PC/List/TerminatorTUDebianGNULinux3.0512M126159スキーで不在中に掃除間違いでコンセント抜け連続起動は126日あたりでstop。apacheだけ死亡状態のまま約一ヶ月放置!
2004/04/12-2004/06/26PC/List/TerminatorTUVineLinux2.6r4512M7575HDDのみ20G→80GへUPして同じマシンで再インストール
2004/06/27-2004/08/31PC/List/CeleronVineLinux2.6r4384M656504年の猛暑を乗り切った。
2004/09/01-2005/05/12PC/List/TerminatorTUVineLinux3.0512M253253連続稼動最長不倒記録達成
2005/05/12-2005/06/01PC/List/CeleronRedHatEnterprise3.0ES384M2020TU再セットアップ期間中のピンチヒッター
2005/06/01-2005/09/13PC/List/TerminatorTUCentOS3.4512M104104リムーバブルケース騒音のため交換
2005/09/13-2006/01/16PC/List/TerminatorTUCentOS3.4512M5112511/03ファン除去や11/21-22に移動。1/09あたりから挙動不審2回なので前とあわせ通算229日で継続断念
2006/01/16-2006/07/02PC/List/CeleronCentOS4.2384M120167初SELinux。連続稼動は120日ぐらい
2006/07/02-2006/11/27PC/List/TerminatorTUVineLinux3.2512M82148リムーバブルケース不調のためPostgres壊れて急遽停止
2006/11/27-2007/05/15PC/List/CeleronCentOS4.2384M169169二つ前のCentOS(通算336日!)を使いまわした。
2007/05/15-2007/11/24PC/List/TerminatorTUVineLinux4.1512M171193やたら停止するようになったので急遽交換
2007/11/25-2008/09/23PC/List/CeleronVineLinux4.1384M202303特に不具合は無かったが、そろそろ入れ替え時というわけで交代
2008/09/23-2008/12/09PC/List/Pen4CentOS 5.21G4177一年半ぶりにCentOS復帰
2008/12/09-2008/12/16PC/List/TerminatorTUVineLinux4.2512M57Windowsサーバ計画の一時代役。5日目以降から何かがおかしいのか論理エラー続発
2008/12/16-2009/09/23PC/List/Pen4WindowsServer2003上にCentOS 5.21G281281VMでの初運用。微妙に遅いような気がするが、281日連続稼動記録更新
2009/09/23-2010/05/10PC/List/CeleronCentOS 5.3512M131229物理サーバ回帰でSubversion利用開始
2010/05/10-2011/03/13PC/List/Pen4CentOS 5.41G306306記録更新してまだまだ伸ばせたが、大震災のため泣く泣く停止
2011/03/29-2011/05/25PC/List/Pen4CentOS 5.41G5858中身そのままで計画停電後再開。埃がすごいのでCeleronに交代
2011/05/25-2011/09/27PC/List/CeleronScientific Linux 6.0512M741258/7落雷停電その後ファンから異音がし出したので記録更新とともに停止
2011/10/17-2013/07/08PC/List/XS35CentOS5.6 32bit2G429630超静音PCなので部屋にて起動。5月にSSD置換プランのためいったん停止だが、その後通算と連続稼動記録400日越えでギネス更新。x64を入れられるハードなのに32bit入れてOracleXEは入れられず
2013/07/08-2014/05/18PC/List/EPOXCentOS5.9 32bit2G284314XS35再構築までのピンチヒッターのつもりだが、ファン付なので夏を乗り切らせるつもりが、一転K7越え目標、さらにCeleron越え、TU越え、夏までにPen4越えもいけるか?と思ったら前兆なくHDD巻き込んで故障
2014/05/24-2014/07/14PC/List/XS35CentOS6.5 64bit2G51512014年夏もフルパワーファンで乗り切れ!・・のつもりがファンをXH61向けに転用&ReadyNas導入で常用停止
2014/09/13-2014/10/15PC/List/XS35CentOS6.5 64bit2G3232外国留学中に公開鍵認証設定翌朝につながらなくなり、強制電源OFF。原因不明
2014/11/05-2017/07/25PC/List/XS35CentOS6.5 64bit2G738265再び利用開始だが、4年たつのでそろそろ入れ替えるかな。2015/04/24に発生したと思われる突然の電源OFFに恐怖。そこから一年近く連続稼働
2015/07/27-2016/04/13PC/List/DN2820CentOS6.7 64bit8G1552657/27から利用開始だが、時折シャットダウンしてた。連続稼働は11/10から155日
2016/04/13-2016/10/26PC/List/NUC5i7RYHCentOS7.2 64bit16Gついに16GBのi7でDockerベースとして運用予定。

移行

Server/移行

通算稼働記録(2015/07/28 現在)

マシン

CELERON1078
TU1064
XS35978
PEN4664
Epox314
K7154

OS

CentOS2527
VineLinux1044
2003Server281
RedHat/RHEL174
Debian159
Scientifix Linux125

連続稼働記録 (2016/04/14)

上位10傑

XS35738
XS35439
Pen4306
EPOX284
Pen4281
TerminatorTU253
CELERON202
TerminatorTU171
CELERON169
CELERON131
TerminatorTU126

利用中サーバー機能

自宅

  1. Subversion(mod_svn)
  2. Samba
  3. squid
  4. ruby
  5. webmin(試験運用中)

外部

  1. Webサーバー(PHP+Postgres+Blog)
  2. WordPress
  3. PostgreSQL
  4. MySQL
  5. CakePHP
  6. バッチ

主要ソフトのサーバー移行手順

  1. HTMLデータ(wiki,phpも含む)
  2. 秘密鍵データ
  3. データベース
  4. cron関係(DDNSアップデートとbackupスクリプト)
  5. bind
  6. squid
  7. BASIC,DIGEST認証情報

我が家のサーバ移行の手順

さすがに10数回も移行をしていると決まった手順があるのでそれをまとめた。

  1. 主要ソフトのインストール
  2. 公開鍵の移動(.ssh/authorized_keys)
  3. cron(/etc/cron.d,/etc/cron.daily)
  4. crontab -eでcron追加する。
  5. SVN
  6. SSLの鍵
  7. メールサーバーの設定

2011/10の移行

  1. SVNを移行した。Apacheの設定、SVN用ディレクトリの作成、権限付与、SVNリポジトリ移動
  2. レンタルサーバ用バックアップ秘密鍵移植
  3. cron.daily,cron.dのシェル移動、crontab -eの登録

今後の計画

運用履歴

2011/11/2xHTTPプロセス数が50越えに急増。httpd再起動
2011/11/28スワップがなくなる。80プロセス滞留再起動後、MaxClientを25に減らす
2012/01/22スワップ利用1G。si4000でディスクI/O急上昇。すべての操作がすさまじくスローhttpd再起動
2012/06/241Gにしてから初のレスポンス悪化。httpdプロセス151滞留!php.iniの設定忘れが原因VPSコンソールから強制再起動
2013/04/12JMeterで100スレッドかけたらOutOfMemory頻発!VPSコンソールから強制再起動
2013/07/17前日21:05近辺より中国クローラーの800近くのアクセスくらってhttpd260プロセス滞留。OutOfMemory頻発!VPSコンソールから強制再起動
2013/08/08自宅サーバのWebmin試験運用中。Apache設定変えて再起動でアクセス不能に!原因は?
2013/08/1302:40近辺よりAWSよりwget攻撃9900ほど。httpd260プロセス滞留。OutOfMemory頻発!さすがに対策立てないと・・・VPSコンソールから強制再起動
2014/11/0812:00近辺よりCPUとDiskI/Oが急上昇。操作できずVPSコンソールから強制再起動
2015/05/191Gに変更してたのに、MAX Client初期設定のまま。12:40近辺よりCPUとDiskI/Oが急上昇。操作できずVPSコンソールから強制再起動
2015/08/09脆弱性対応に伴うメンテナンスが8/24に予定。20日前に通知手動停止、起動
2016/02/12Kagoyaの2Gは保証ではないので急上昇してOOMでSSH接続もできず10時ごろ再起動。elasticsearch/td-agentは止めたVPSコンソールから強制再起動
2016/03/29CloudFront導入して安心してたらOOM発生。たまたまコンソールに入っていたからすぐ復旧できたが、今後要注意。VPSコンソールから強制再起動
2016/04/18Kagoya VPSでElasticSearch試験運用してたらすべてのサービスが止められず、rebootも効かなかったVPSコンソールから強制再起動
2016/05/25AzureA2 ES+Kibanaの高負荷で運用していたが、重くなってCloudFrontタイムアウトで慌てて再起動。コンソールから強制再起動
2016/07/15新大阪への移動中にA1へのサイズダウンでリブートしたら、削除したストレージアカウントに紐付いていたらしく起動失敗。Sakuraでそのまま運用し、新しいインスタンスにその日夜までに移行
2016/09/1219時から20時半までMySQL落ちるDiskIOが急上昇だが、攻撃者特定はならず
2016/12/1623時から24時半までMySQL落ちる22時近辺にDiskIOが数十GBレベルに上昇。ただし日単位でみるとアクセス集中はない。firewalldが止まっていたのと余計なプロセス(kibana/es/td-agent)を停止
2017/08/2420:50から20分程度MySQL落ちるInnoDB: Fatal error: cannot allocate memory for the buffer pool

トラブル履歴

2017/02/24

Feb 24 05:56:54 FebAzure2 kernel: Out of memory: Kill process 30491 (mysqld) score 101 or sacrifice child
Feb 24 05:56:54 FebAzure2 kernel: Killed process 30491 (mysqld) total-vm:1188868kB, anon-rss:173876kB, file-rss:0kB, shmem-rss:0kB
Feb 24 05:56:56 FebAzure2 mysqld_safe: /usr/bin/mysqld_safe: line 183: 30491 Killed                  nohup /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock < /dev/null >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1
Feb 24 18:12:57 FebAzure2 kernel: Out of memory: Kill process 50701 (mysqld) score 95 or sacrifice child
Feb 24 18:12:57 FebAzure2 kernel: Killed process 50701 (mysqld) total-vm:1191648kB, anon-rss:163144kB, file-rss:0kB, shmem-rss:0kB
Feb 24 18:13:00 FebAzure2 mysqld_safe: /usr/bin/mysqld_safe: line 183: 50701 Killed                  nohup /usr/libexec/mysqld --basedir=/usr --datadir=/var/lib/mysql --plugin-dir=/usr/lib64/mysql/plugin --log-error=/var/log/mariadb/mariadb.log --pid-file=/var/run/mariadb/mariadb.pid --socket=/var/lib/mysql/mysql.sock < /dev/null >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1 >> /var/log/mariadb/mariadb.log 2>&1

nodeが殺されたのちmysqlも!

2014/11/08の高負荷

2014-11-08 09:35:01,20
2014-11-08 09:40:03,24
2014-11-08 09:45:12,53
2014-11-08 09:50:10,41
2014-11-08 09:55:10,59
2014-11-08 10:00:03,24
2014-11-08 10:05:28,62
2014-11-08 10:10:47,62
2014-11-08 10:15:40,70
2014-11-08 10:20:44,72
2014-11-08 10:25:43,79
2014-11-08 10:30:29,79
2014-11-08 10:35:03,79
2014-11-08 10:40:46,79
2014-11-08 10:50:25,84
2014-11-08 10:56:11,93
2014-11-08 11:27:26,116
2014-11-08 11:45:57,116
2014-11-08 12:11:43,115
2014-11-08 12:40:57,110
2014-11-08 12:50:40,100
2014-11-08 12:55:43,97
2014-11-08 13:32:31,114
2014-11-08 15:11:33,122
Nov  8 11:02:21 www4052ue kernel: httpd invoked oom-killer: gfp_mask=0x200da, order=0, oom_adj=0, oom_score_adj=0

No

cat access_log | cut -d ' ' -f 1 | sort | uniq -c


82.80.249.170からすさまじいアクセス。2683

この時点ですでにアクセスできなくなっていたとおもわれる。

grep "82.80.249.170" access_log-20141109 | cut -d ' ' -f 4 | sort | uniq -c | sort

時間単位で見てみると秒間50アクセスくらって死亡している模様。

2015/05/19 高負荷

2015-05-19 12:45:01,23
2015-05-19 12:50:20,66
2015-05-19 12:55:11,77

DOS対策

mod_evasive,mod_dosdetector

1309 移行計画

保存すべきもの

  1. サーバー秘密鍵
  2. SSH用公開鍵
  3. CRON設定
  4. SVN
  5. MySQL
  6. PostgreSQL

自宅に移してもよいもの

  1. CakePHP
  2. 家計簿ツール(Postgres)

移行作業に慎重な検証と手順を要するもの

  1. WordPress
  2. 旧MTコンテンツ

インストールパッケージの確認

grep Installed /var/log/yum.log*

設定ファイルの保存

1402移行

より高負荷に耐えられる構成にして、リリースしたい。

MySQL落ちる問題

2016/12/17

InnoDB: Fatal error: cannot allocate memory for the buffer pool

各サーバーの役割

外部サーバー

  1. 公開web情報
  2. 公式SVN

自宅サーバー

  1. 内部SVN(バイナリ)
  2. ファイルサーバー
  3. 外部サーバーバックアップ
  4. 実験
Counter: 11808, today: 1, yesterday: 2

トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS