Archive for the ‘サーバー’ Category

v6プラス固定IP ヤマハルーター編

どうも、imo@入江です。
前の記事からつながるお話です。
読んでない方はぜひ導入の紆余曲折からどうぞ→https://lowfreq.info/archives/23625

サーバー側ネットワークを11/3にv6プラス固定IPに変更した際、IX2105だと160Mbpsくらいで頭打ちというお話をしました。
繋がりましたしレイテンシもいい。
ですがその速度では物足りなかったのです。

ということで、RTX830買ってきました。
こらえ性がないから仕方ない。
RTX830はARM系1.33GHzのデュアルコアCPUです。
PowerPC系とは単純な周波数での比較はできませんが、webで他の方の記事を見る限り速度出そうだなーと。

で、設定していきます。
ヤマハのサイトにIPIPトンネリングとしてコンフィグ例が載っています→コンフィグ例
ですが、こちらについてはIPv6パススルー設定がありませんので他の設定とミックスして噛み砕く必要があります。

他の設定について、v6プラスをご利用の他の方がいくつか設定例出してくださっていますが、
オープンサーキットさんがそのものズバリな設定例を記載してくださっています。
https://www.open-circuit.ne.jp/isp/settei/v6direct-rtx1210-ip1.html
設定例の中の”v6direct-rtx1210-config-ip1-filter.txt”を元にするのがいいでしょうか。
RTX1210向け設定なのでLAN3がWANになっています。
RTX830ではLAN3→LAN2に読み替えてください。

また、プレフィックス変更時、IX2105はddnsコマンドで更新をかけていましたがRTX830には汎用のddnsコマンドはありません。
そのため、Luaスクリプトで更新をかけることになります。
これは上記ヤマハサイトのほうのコンフィグ例を参考にするのがいいと思います。

私はRTX1100以来のヤマハルーターだったのでなかなか思い出せず勝手が掴めませんでした。
IX2105と比較したとき、現在のヤマハルーターにはコンソール上でコンフィグをまっさらにして設定する機能はないようです。
コンフィグをまとめて入れる場合はtftpを使います(設定中に思い出しました)
tftp putの際、clear configurationを入れておくと何もない状態に設定を入れることができます(これがないと追記になります)。
最近のファームバージョンでtftp getでコンフィグを吸い出したときには記載がないので、覚えておくと便利です。

設定して運用してみると、夜中1時前で下のスループットが出ました。

本当にフレッツ回線なんですかね…

速度もですがPINGが2msというのが驚愕です。
今まで一般回線で2msはNUROでしか見たことありません。
これがv6プラスの実力なんですね。

また、CPU使用率についてもIX2105とは大きく違う挙動です。
RTX830では、上記測定中でもCPU使用率コア1-63%、コア2-14%が最高値でした。
IX系と比べて負荷はかなり低いです。
サーバー公開用にフィルタやnat設定も入れてこれなので、余裕がありますね。

ということで、自宅回線の安定化、高速化もひと段落しました。
新しいルーターは設定してると楽しくなります。

Posted: 2018-11-08
at 23:32 by 入江 萌乃


Categories: サーバー,技術メモ

Comments: No comments


v6プラス固定IPのあれこれ

どうも、imo@入江です。
先日告知しましたIPアドレス変更は本日朝に完了しました。
ご協力ありがとうございました。

後日談があります。

現在フレッツ光の回線を利用していますが、POIに起因する混雑時間帯のレイテンシ悪化が酷かったので根本的な解決をしたかったのです。
そこでJPNEのv6プラス固定IPサービスを利用することにしました。
設定の際にあった紆余曲折を備忘録として書き起こしておきます。

v6プラス固定IP自体の特徴を簡単に書くと
・付与IPアドレスは占有となり、ポートの制限はなし
・IPv4アドレスは固定だがIPv6アドレスは半固定、ONU等の変更で変わる可能性がある
・対応ルーターはHGW、もしくはヤマハRTX/NVR系やNEC IX系等の業務向け機種
・JPNEのBRに対してトンネルを張って利用する
というものです。

■ルーター側のコンフィグ
利用したのはNECのIX2105、今まで別ISPのPPPoE終端で利用していたものです。
NECのサイトに設定ガイドがあるので比較的敷居が低いのですが、
記載コンフィグの対象ファームバージョンが記載されていないのでコマンドリファレンスと見比べる必要があります。(後述)

>設定ガイド

当初利用した個体のファームは9.1.10
一部相違はあるもののだいたいは設定ガイドのコンフィグで通ります。
ですが、proxy-dns ip enable request bothだけは通らず。
というのも、request bothはファーム9.2台から実装されているようで、9.1台にはv4とv6に同時に転送する機能はないようです。
また、記載コンフィグ上ddns内のsource-interface BVI0も、9.1ではsource BVI0となります。
一部書き換えることで9.1.10でもトンネル接続可能です。

その後、10.0.14の個体にしてみましたら今度はrequest bothが別行への記載に変更になっていました。
以上から、設定ガイドのコンフィグはファーム9.2~10未満が対象のようです。

あと、ISPから提供される情報にインターフェイスID、IFIDがありますが、
IFIDの表記がxxxx:xxxx:xxxx:xxxxとなっていることがあります。
IXシリーズではxx:xx:xx:xx:xx:xx:xx:xxという表現方法になるので、
例: dead:beef:dead:beef → de:ad:be:ef:de:ad:be:efのように書き換えて設定ください。

11/4追記:
9.1.10での運用について当初うまくいっていなかったのですが、解消できたので書いておきます。
すぐ下の5秒遅延-に関するところです。

前提になる話として、「v6プラスが提供しているDNSサーバーはIPv6でのみreachableです」
proxy-dns ip enable request bothがない状態だと、IPv4でのDNS問い合わせが不可能なのでタイムアウトまで待っていただけだったんですね。
当初AAAAレコードだけかと思っていましたが、tcpdumpしてよく見てるとAも引けていませんでした…
コンフィグに他にDNS設定を書いていないので、当たり前の挙動です。

で、要はv4 rechableなDNSがあればいいということで、
proxy-dns server 1.1.1.1
を追加して平穏が訪れました。
1.1.1.1はCloudflareが提供しているパブリックDNSです。
Google Public DNSでもVerisign Public DNSでも好きなのを入れていいと思います。
サーバー系の設定にパブリックDNSを入れる是非については少し悩みましたが、他にあてもないので。
–追記ここまで

■サーバー側の設定
利用目的がwebサーバー公開なので、そこでも気になった点を。
RHEL6/CentOS6以降ではDNS問い合わせする際、標準ではAレコードとAAAAレコードの問い合わせに同じソケットを利用するようです。
そのため、一部ファイアウォールでは後の応答を遮断してしまう模様。
CentOS7の自分の環境ではWordPressにアクセスする際サーバー側からDNS問い合わせが発生するため、
遮断が入っていたのかタイムアウトが発生しページ表示が5秒程度遅延していました。

従来の問い合わせ方法を使うにはnmcliで下記を投入します。
nmcli con modify ipv4.dns-options single-request-reopen
systemctl restart network

single-request-reopenというのがリクエストごとに別のソケットを開くオプションになります。
/etc/resolv.confを編集する方法もありますが、CentOS7の場合はNetworkManagerがオーバーライドしていくので
上記nmcliのほうが良いと思います。

■使用感
ひとまず結果から。
記事公開日に数回だけチェックした数値なので参考程度に。

Ookla speedtest.net(DL/UL、相手はOPEN Projectを選択)
 PPPoE:平時PING15ms 290/410Mbps、混雑時PING40ms 28/60Mbps
 v6プラス:平時PING3ms 140/138Mbps、混雑時PING3ms 138/143Mbps

正直なところ、PPPoEでも平時は問題ないのです。
速度も出ますしPINGも悪くありません。
ですが、POIにトラフィックが集中する混雑時には速度が大きく下がります。
実際のところ、上の計測結果は以前と比べるとかなりマシなほうで
ひどい時には下り10Mbps切ることもありました。
また、レスポンスも悪化するので、その分が応答時間に乗ってきます。
もちろんwebサーバーとクライアント間は複数のセッションを張るのでレイテンシ×コンテンツ数ではありませんが、
速度も相まってもっさり感じることが多くなります。

一方、v6プラス固定IPだと速度、PINGともにほとんど変動しません。
特にPINGが一定かつ短いのはサーバー公開用途として理想的です。
夜間にクライアント用途として利用しても、サイトへのアクセスは快適です。
もちろんv6プラスについても終端のBRが混雑すると遅くなる可能性はありますが、
POIと比べるとJPNE内部の機材なので対処しやすいのではないかと。
各ISPがIPv4 over IPv6でトラフィックをIPoEに逃がすサービスをしていますが、その意味は大いにあると思います。

ところで、上記の速度結果で、v6プラスが遅いことに気づくと思います。
これはIX2105のCPU性能によるものです。
上記の速度計測の際に確認すると、v6プラス時はCPU使用率が100%に張り付きます。
IX2105はPowerPC系の400MHzシングルコアなので、このCPUの限界ということですね。
4-over-6の処理はPPPoEより重いようです。
昨年にCPUが800MHzになったIX2106が発売されているので、そちらだとさらに高速だと思います。

ちなみにファームバージョンによっても速度差があり、計測すると9.1.10のほうが速いです。160Mbps程度出ます。
先に書いたDNSまわりの挙動があったので私は今のところ10.0.14で運用入れていますが、9.1.10でもコンフィグ見直せばいけると思います。
2台とも中古で入手した個体なのでその間のファームで確認できないのです。

そんなこんなで、インターネットへの接続方法としては宅外のボトルネックを極力排したものになったかと思います。
今後ともよしなに。

Posted: 2018-11-03
at 22:21 by 入江 萌乃


Categories: サーバー,技術メモ

Comments: No comments


IPアドレス変更のお知らせ

–下記完了しています 具体的な内容はこちら

どうも、imo@入江です。
実家帰省しておりました。

さて、タイトルの通りですが、11月初旬にサーバーの回線変更を行います。
といってもフレッツ回線自体はそのままです。
現在グリーンネットをIPv4 PPPoEで終端してますが、やはり混雑時のレイテンシ悪化が激しいので
別プロバイダで提供されているv6プラス固定IPに切り替えます。
POIを経由せずJPNEまでIPoEなので速度上下はあれど応答は安定すると思います。

ドメインも入江で代理管理していますので、ユーザーでの作業内容はありません。
処理は午前中予定、その間接続できない時間帯があることご承知おきください。
作業日は開通タイミングで変動しますが、現在のところ11/3ないし11/5の07:00~を予定しています。

–11/2追記

回線が無事開通し、テストも終わりましたので変更処理します。

11/3 07:00〜の作業となります。

DNS内容更新が入るのでアクセス環境によっては30分程度の接続断が考えられます。

Posted: 2018-10-18
at 9:12 by 入江 萌乃


Categories: サーバー

Comments: No comments


サーバー更新完了と最近のいろいろ

どうも、imo@入江です。
サーバーの更新は無事完了しました。ご協力ありがとうございました。
メインストレージをSSDに変更、PHPも7.2系に変更しているので以前と比較してかなり高速化しているはずです。
今後ともよしなに。
私がドメインを代理管理している方には、折を見てDMとかメール投げます。見てね。

 さて、サーバー更新以外ではかなり久しぶりです。
前回はいつだ?と思ったら2017/02の記事でした…
そっからのお話を駆け足で。だいたい旅行のことです。

■また台北日帰りする@2017/04
1月に行ったというのにまた台北へ行ってました。
peachの日帰り弾丸が安いのが悪い。

ちょうどこのころ桃園MRTが開通したのでそれを使って台北市内へ。かなり便利です。


台北駅で駅弁食べて、西門町で麺線食べて、アニメイト行って光華商場行ってとまあ代わり映えしませんでしたが
適当にうろうろするのは楽しいです。


あ、お米もらいました。

■日帰りで京都にたかめ少女を見に行く@2017/06
6/8に高雄メトロと嵐山電鉄が観光連携協定を結ぶとリリースがあったんです。
そこでたかめ少女のラッピング電車がお披露目されるということで、よし行くか、と。

式典は超フレンドリーでとても楽しかったです。


また、他のファンの方にもお会いできて貴重な一日でした。

■ぶち切れて連休取って中国とか行く@2017/07
勤務先でいろいろあり上司と面談になったのです。
で、紆余曲折あり7月に12連休を取って国外逃亡してました。
上海→香港→高雄というルート。




上海はもちろん訳わからなくて最高でしたが、香港とお隣の深圳が居心地よくてハマりました。






このときの高雄は台風の直撃を食らいわりと消化不良…

■JALの工場見学に行く@2017/10
羽田空港至近にあるJALの整備工場が、工場見学を受け付けているんです
JAL SKY MUSEUM
ちょうど機会が合い行ってきました。

もちろん整備工場部分も大迫力ですが、座学前の博物館スペースが見るものめっさあって満足。
興味を持たれた方はぜひ。受付開始時間すぐに行って座学始まるまで展示品を見ておくのがいいですよ。

■台北に高捷戀旅やりに行く@2017/11
最近台北の夜市行ってない…ということでパパっとチケット取って台北へ。
直前に決めたこともあって宿はドミトリーを使いました。
Starbox Hostel 星盒青年旅館




ちょうどそのころ、GPS/ARゲーである高捷戀旅に台北編がリリースされていたので、Youbikeで移動しながらポイント埋めてました。
みんな高捷戀旅やろう。
>高捷戀旅

■香港で長話をする@2018/01
副業の絡みで、香港に行ってました。といってもほぼ観光でしたが。
香港エクスプレスが羽田深夜1時発というナイスな便を飛ばしているので、香港で朝から活動できるのです。



シノセンターの本屋で店員さんと話し込んでました。
香港では普通語で話しかけるより英語で話したほうが相手もフレンドリーですね。
本当は広東語が話せればいいのでしょうが、英語がわかる方が多いので甘えてしまいます。

■名古屋でひつまぶしをいただく@2018/03
これまた副業で、名古屋にお呼ばれしたので日帰りでした。
というか1月の件の関連です。

お話している途中で、生まれて初めてひつまぶしをいただきました。
相手の手前写真はありませんが、これが超うまい。
そのあと帰る前に食べた担々麺もうまい。
あ、観光はろくにしませんでした。

■ナナ様の誕生日を祝いに高雄に行く@2018/05
たかめ少女のナナ(耐耐)様の誕生日が5/23なのです。
ナナ様ファンとしては祝わねば、ということで日程合わせて高雄に行ってきました。
もう皆さん気づいてると思いますがこの入江、気が付くと旅行してます。バカです。
で、そのころpeachが那覇-高雄便を就航させたので乗ってみたくて
羽田→那覇、那覇→高雄、桃園→羽田というルートとなりました。




高雄だけでなくお隣の東港にも足を延ばしたりと、活動範囲が広くなった気がします。

■深圳で情報収集する@2018/06
香港で知り合った方から、積もる話もあるのでおいでよとラブコール。
で、ホイホイ行ってしまったのでした。


待ち合わせの場所として言われたのがまさかの深圳、しかも本屋。
どういうことだ?と思っていたらどうやら世界最大の本屋とのこと。中国本土はスケールが違いすぎます。
深圳书城中心城
店内はイラストの描き方本がこれでもかと積んであったり、家電修理のガイドブックが置いてあったりととにかくパワーに溢れていました。


あとは華強北に行ったり香港で点心食べたり。
深圳では本当にどこでもWeChat Payが使えて衝撃的でした。

■台北に友人に会いに行く@2018/07
友人に会いにpeach日帰りで行ってきました。


台北にとらのあながオープンしたということでそこを見たかったのもあります。


会う前にカルフールで買ったカットパパイヤが感動的にうまくて、このために台北に住みたいと思ったほどでした。


あと、光華商場のところにでっかいオナホの広告があって爆笑したり。
行くところが決まっていると日帰りでもじゅうぶん楽しめます。

■車で大阪コミトレに行く@2018/09
コミトレに行くやで!ということで、友人が運転する車で京都と大阪へ。
ほんと運転お疲れ様でした。


各所のサービスエリアで食べたり京アニショップに行ったり清水寺に行ったり。


いづうさんの鯖寿司が美味すぎました。
京都は今までけっこう行ったことあるのですが、食べたことなかったのを本気で悔やみました。
また行きたいです。

もう訳の分からないペースで旅行してる気がしますが、きっと気のせいです。
おそらく今後も続くと思います。

Posted: 2018-09-29
at 23:43 by 入江 萌乃


Categories: サーバー,旅行,日記

Comments: No comments


2018/9/19 サーバー更新のおしらせ

–下記は完了しています–

大変お久しぶりです。imo@入江です。

現在運用している自宅サーバーがハードウェア、ソフトウェアともにさすがに古くなってきました。
ということで、来月にサーバーの更新を予定しています。

作業日時:2018/09/19水曜日 05:00(JST)~
作業時間は3時間程度を予定していますが、進捗により変動します。
更新中はアクセスが一切できなくなります。

更新時点で下記のような構成になる予定です。
■ハードウェア
CPU:Intel i7-6700
MEM:16GB
SSD:1TB RAID1
HDD:4TB バックアップ領域
NIC:Intel i350-T2
■ソフトウェア
OS:CentOS7.5
apache:2.4.6
perl:5.16.3
php:7.2.9
python:2.7.5
mariadb:5.5.60

更新に際して、perl、php、pythonはapache権限ではなく、ユーザー権限での実行になります。
そのため、各ユーザーディレクトリ中のapache作成のファイルは所有者を各ユーザーに変更します(ファイル内容は確認しません)。

また、各ユーザーのホームディレクトリは同じですが、FTPクライアントでアクセスした際の初期ディレクトリが変更となります。
現在:/server/users/<ユーザー名>/html/
更新後:/server/users/<ユーザー名>/

動作は各CMSで確認していますが、すべての動作が今までと同じ保証はできません。
不具合がありましたら都度ご連絡ください。

Posted: 2018-08-29
at 23:13 by 入江 萌乃


Categories: サーバー

Comments: No comments


Raspberry Pi + GPSでNTPサーバー

どうも、萌乃です。
Raspberry PiとGPSモジュールを組み合わせてNTPサーバーを構築してみました。
GPSからの信号を利用することでUTCに対して数百ナノ秒の精度で時刻を保持できます。
以前から高精度の時刻保持は研究していたのですが、Raspberry Piを使うとわりと簡単に作れるので良いなと思う次第です。

■もくじ

1:材料
2:raspbianの設定
3:ひとまずGPSモジュールからのデータを見てみる
4:PPSの確認
3:カーネルのリビルド
4:NTPのビルド
5:うるう秒への対応
6:NTPの設定(gpsd編)
7:NTPの設定(ntpd編)
8:Raspberry Pi自体の設定
9:ちなみに

■材料

・Raspberry Pi B+
おなじみのrpiです。秋月電子で購入。

・4GB以上のmicroSDカード
これはお好みで。
4GBだとカーネルリビルド時にギリギリだったので、8GB以上が良いかもしれません。

・U-blox NEO-6M GPSモジュール
aitendoで購入(http://www.aitendo.com/product/10255
アンテナも付属していますので窓際ならこれだけで受信環境が揃います。

動作電圧3-5v、信号がTTLレベルで出て使いやすいですが、PPSがLEDに接続されているので
3番ピンにリード線をハンダ付けして信号が取り出せるようにしておきます。

gps

こんな感じで。
ピンヘッダを付けておくと便利です。

・GPSアクティブアンテナ
aitendoで購入(http://www.aitendo.com/product/2421
ベランダにアンテナを出したかったので購入。
上記アクティブアンテナの場合、モジュール側がU.FL、アンテナ側がMMCXなので変換する必要があります。

case

自分はケースを加工して搭載できるようにしました。

■raspbianの設定

今回はrpi標準のraspbianを使っています。(2014/12/24版で動作確認しています)
http://www.raspberrypi.org/downloads/からシステムイメージを入手してmicroSDに書き込んでおいてください。

キーボードやロケールなど初期設定はお好みで
apt-get update
apt-get upgrade
rpi-update

で内容を最新にしておきます。

GPSモジュールはrpiのttyAMA0に接続することになります。
標準ではttyAMA0でシリアルコンソールが使えるようになっているため、これを無効にします。

/boot/cmdline.txtからconsole=ttyAMA0,115200 の部分を削除
/etc/inittabのT0:23:respawn:/sbin/getty -L ttyAMA0 115200 vt100 の行を無効に
sudo insserv -r triggerhappyでtriggerhappyを無効に

他の用途でもrpiを使うなら最低限このくらいですが、自分のようにntp専用にしたいなら
サウンド関連は無効にしても良いかもしれません。
/etc/modulesにsnd-bcm2835がいます。

ここまでやったら一度シャットダウンしてGPSモジュールを接続。

connect

自分はこんな感じに入力しています。
電源投入後、GPSを捕捉するとPPS LEDが点滅します。

■ひとまずGPSモジュールからのデータを見てみる

PPSは一旦置いておいて、GPSモジュールから出てるデータを見てみます。

NMEAデータを管理するgpsdとクライアントをインストール
sudo apt-get install gpsd gpsd-clients

今のところはgpsdを自動起動せずに手動で立ち上げます。
理由は後述。
sudo gpsd /dev/ttyAMA0 -n -F /var/run/gpsd.sock
cgps -sするとGPSの捕捉状況が見られます。

cgps

こんな感じに
衛星が3つか4つ以上捕捉できていると3D FIXできますが、
時刻同期だけなら多分もっと少なくてもいいです。

余談として、gpsdを経由すれば簡単にPPSに同期したGPSロガーも作れそうですね。
実用に耐えうるかはともかく、そのうち作ってみます。

■PPSの設定

※2014/12/24公開のraspbianカーネルは標準でPPSに対応しています。

PPSの信号が利用できるようにします。

sudo apt-get install pps-tools
でppsツールをインストール後、
/boot/cmdline.txtの行末に
bcm2708.pps_gpio_pin=18 を追加(ピン番号は環境で変更してください)、

/etc/modulesに
pps-gpio
を追加します。

再起動後、
sudo ppstest /dev/pps0
でppsが拾えているか確認。

pps

延々表示し続けるのでCtrl+Cで止めます。

■カーネルのリビルド

※2014/12/24公開のraspbianカーネルは標準でPPSに対応しています。
カーネルリビルドしなくても数マイクロ秒の精度は出ます。

ナノ秒オーダーの精度を出すにはdyntickが邪魔になるので、tickの方法を変更してカーネルをリビルドします。

必要なものをインストール。
apt-get install wget git libncurses5-dev bc screen

今動いているカーネルコンフィグを取得するとき、sudoでもエラーが出たのでrootログインできるようにしておきます。
sudo passwd rootでパスワード作成。
再起動しrootでログインして作業再開。

mkdir pps
cd pps
git clone --depth 1 git://github.com/raspberrypi/linux.git
cd linux
zcat /proc/config.gz > .config ←今動いているカーネルコンフィグを保存、ここでsudoだとエラーが出ました
make menuconfig

カーネルメニューにて、まずは現在の設定をロードします。
最下部のloadから.configをロード。

PPSとtick周りの設定をします。
Device Drivers → PPS supportでPPS supportを有効に(Y)、
PPS kernel consumer supportとPPS client using GPIOも有効にしておきます。

メニューのトップに戻って、
General setup → Timers subsystemと入り
Old Idle dynticks configを無効、
High Resolution Timer Supportを有効に。
その後Timer tick handlingを有効にすると別画面に遷移するので
Periodic timer ticksを選択します。

ここまで終わったら再度メニューのトップに戻り、
saveから.configへ再度書き込みます。

私はこれをやり忘れて1日無駄にしました…

さてビルドします。
make
make modules_install

makeに10時間くらいかかります。
ext4のジャーナル破損が起こることがありますが、その際にはmicroSDの故障ないし相性なので
別のカードに変えてみてください。

カーネルイメージ化します。
git clone --depth 1 git://github.com/raspberrypi/tools.git
cd tools/mkimage/
./imagetool-uncompressed.py ../../linux/arch/arm/boot/zImage

これでkernel.imgが出来上がります。

rpiにカーネルをインストールし、起動カーネルを変更します。
mv kernel.img /boot/kernel_tick.img
/boot/config.txtに
kernel=kernel_tick.img
を追記します。

再起動すると作成したカーネルで起動します。

■NTPのビルド

標準でインストールされているntpはPPSに対応していないので、ソースからビルドします。
sudo打つのが面倒だったのでrootでログインしています。

mkdir ntp
cd ntp
apt-get install libcap-dev
wget http://archive.ntp.org/ntp4/ntp-4.2.8.tar.gz

1/31時点ではntp-4.2.8p1-RC2.tar.gzが最新です。
必要に応じてhttp://archive.ntp.org/ntp4/を確認してください。

tar xvfz ntp-4.2.8.tar.gz
cd ntp-4.2.8
./configure
--enable-ATOMはなくても対応するようです。
--enable-linuxcaps含めて入れたほうが精神衛生上良さそうな気がします。

make
make install

これで/usr/local/bin/と/usr/local/sbin/にバイナリが生成されます。

このバイナリを今まで動いていたntpと入れ替えます。
/etc/init.d/ntp stop
cp /usr/local/bin/ntp* /usr/bin/ && cp /usr/local/sbin/ntp* /usr/sbin/
/etc/init.d/ntp start

この方法だと、今までのからntp.confや起動スクリプトが流用できるので便利です。

■うるう秒への対応

今年の7/1にうるう秒の挿入があります。
GPSから送られる情報の中にうるう秒がいつプラス、マイナスされるかがありますので、
本来であればその情報だけで対応できます。
しかし、GPSからのその情報を使うかはクライアントごとにまちまちなので、別のアプローチで対応しておきます。

アメリカのNISTでうるう秒のリストが公開されていますのでそちらを使います。
ftp://time.nist.gov/pub/leap-seconds.list
(実体のファイルはleap-seconds.3629404800ですが、leap-seconds.listでシンボリックリンクされているようです)

cd ~
wget ftp://time.nist.gov/pub/leap-seconds.list
sudo cp leap-seconds.list /etc/

/etc/はntp.confと同じところに置きたいと思ったからなので、コピー先はお好みで。

/etc/ntp.confの中に
leapfile /etc/leap-seconds.list
を追記します。
ntpdを再起動すると適用されます。

ここからNTPの設定に入りますが、NMEAのデータgpsd経由で送るか、ntpdで直接管理するかによって設定が異なります。
gpsdを経由せずにntpdで直接管理したほうが精度が良いですが、他のソフトから扱えなくなります。

■NTPの設定(gpsd編)

NMEAデータをロギングしたいなど、他にも使う際にはこちらです。
共有メモリを経由するので、NMEA側のジッターが大きめな気がします。

まずはgpsdの自動起動を設定します。
sudo dpkg-reconfigure gpsdから出てくるメニューで
自動起動をオン、参照ポートを/dev/ttyAMA0、ソケットを/var/run/gpsd.sock(標準)に。

/etc/ntp.confの現在のserver行をコメントアウトしてから、下記設定を投入します。
server 127.127.22.0 maxpoll 4
fudge 127.127.22.0 flag3 1 refid PPS
server 127.127.28.0 maxpoll 4 prefer
fudge 127.127.28.0 time1 0.141 refid GPS

他の設定はお好みで。

time1はPPSに対するNMEAの遅延時間で、単位は秒です。
私の環境では141ミリ秒くらいでしたが、一旦0で動かしてオフセットを見ながら適宜調整したほうがいいかもしれません。

この設定で動かすと、下のようになります。

gpsd

■NTPの設定(ntpd編)

私のようにNTP専用機にするぜ!という人はこちらです。
ntpdが直接NMEAデータをつかむので安定しますが、他で使えません。

/etc/udev/rules.d/10.pps.rulesというファイルを作成します。
内容は以下2行

KERNEL=="ttyAMA0", SYMLINK+="gps0"
KERNEL=="pps0", OWNER="root", GROUP="dialout", MODE="0660", SYMLINK+="gpspps0"

ntpdはユーザー”ntp”で動作するので、ユーザー”ntp”をdialoutグループに追加しておきます(標準ではグループに属していません)。
sudo usermod -G dialout ntp

再起動すると/dev/gps0と/dev/gpspps0という2つのデバイスができます。
このデバイスをntpdで読んでいきます。

/etc/ntp.confの現在のserver行をコメントアウトしてから、下記設定を投入します。
server 127.127.20.0 mode 17 maxpoll 4 prefer
fudge 127.127.20.0 flag1 1 flag3 1 refid GPS

flag1はPPSを処理するかのフラグ、flag3はPPSの管理をntpdでするかカーネルでするか(0がntpd、1がカーネル)のフラグです。
あと、入れなくても精度は出ますが気になる方はtime2も入れてください。
time2はPPSに対するNMEAの遅延時間で、単位は秒です。

この設定で動かすと、下のようになります。

ntpd

■Raspberry Pi自体の設定

上記でGPSモジュールを参照してntpdが動作するようになりました。
より時刻精度を出したい、参照時の精度を出したいといった場合には下記設定をすると良いでしょう。

・CPU周波数の固定
rpiのCPU周波数は、アイドル時には低く負荷がかかると高くなります。
周波数変動時の遅延が時刻に影響をするので、それを固定します。
raspi-configでオーバークロックをするとリセットされてしまうので注意。

sudo echo performance > /sys/devices/system/cpu/cpu0/cpufreq/scaling_governor

・シリアルのレイテンシ設定
シリアル(NMEA)はオフセット指定できるので標準のままでも問題ないのですが、
レイテンシを低減しておくとなお良いかと思います。

sudo apt-get install setserial
setserial /dev/ttyAMA0 low_latency

この設定を入れる前後で遅延時間がいくぶん変化しますので、必要に応じてntp.confに修正を加えてください。

・LANコントローラーの設定
rpiに搭載されているLANコントローラーはSMSC9512というもので、USBハブと一緒になっています。
ターボモードというものがあり複数のパケットを同時送出できますが、カーネルクラッシュの危険性がありますので
無効にしたほうが良いのかも。

/boot/cmdline.txtに下記設定を入れます。
smsc95xx.turbo_mode=0
ppsの設定が行末になるように注意してください。

・メモリの設定
rpiに搭載のメモリにはリフレッシュレート調整の機能がありますが、調整時にはポーズがかかって影響が出ますので無効にします。
メモリの温度によって調整しているみたいですね。

/boot/cmdline.txtに下記設定を入れます。
disable_pvt=1
ppsの設定が行末になるように注意してください。

■ちなみに

自宅で運用しているrpiのオフセット値などをmuninで収集して公開しています。
http://ns.lowfreq.info/munin/pintp/pintp/
このくらいの精度が出る、という参考にしてもらえれば。
プラグインの一部は自作したものですが、これについては別の機会に公開します。

Posted: 2015-01-31
at 17:00 by 入江 萌乃


Categories: サーバー,技術メモ

Comments: 2 comments


おしらせ

どうも、萌乃さんです
少し先のことになるのですがお知らせです

年明け以降、準備でき次第webサーバーの切り替えを行います
具体的にはWindows 2012R2 Hyper-VでVMとしての運用にし、物理的なサーバーを統合します
現在同様のデータ信頼性を確保するため、VMのデータ保管先HDDはRAID1構成にし、
定期バックアップは別コントローラー、別ディスク上に作成します
将来的にはメイン領域をSSDのRAID1構成とすることも検討しています

VMでの運用に切り替えるのと同時に、OSのバージョンを変更します。
現在はテスト中の新物理サーバーVM上でCentOS7のテストを実施中です

切り替え時期固まりましたらまたお知らせします

Posted: 2014-12-03
at 2:42 by 入江 萌乃


Categories: サーバー

Comments: No comments


雑文

どうも、萌乃さんです。
前回からわりと色々あって追われてました

ざっくばらんに列記してみます
下にいくほど最近の話

■場所移動しました
サーバー設置してるラックを回線に近いところに移動したり
机の至近から離れたので熱問題的にもちょっと改善
工事の際に頂いた5mの室内ファイバーが半分巻いてます

■フレッツ・セッションプラス契約しました
今まではPPPoEまわりで何か実験するたびにぷららのセッションを切ってましたが、
わざわざ処理するのが面倒なのでセッション追加なんぞを(324円/月)
でもすぐ常時使うセッションができてしまい個人的にはげんなり
下に書きますがぷららのPPPoE IPv6を使うとセッション1つ消費してしまうんですね

■ファイルサーバーのOSを入れ替えました
さようならWindows7、こんにちはWindowsServer2012R2
さすがサーバー用OSだけあって余計な機能が全く入ってないです
インストール直後はオーディオサービスも無効になってるくらい
Hyper-Vが使えるようになったのでさっそくそちらに移行
さようならVMware Server

■WindowsXPを駆逐しました
サポート切れてからもだらだら使っていたXPをついにWindows7へ変更しました
自宅環境から実家の端末、各サーバーまで含めてXPで動いてるのはないはず
しかしXPリリースされてから10年以上ですか、すげえなぁ

■HEのIPv6から脱却しました
今までサーバー群のIPv6は無料トンネルサービスのHEを使ってたんですが、
無料サービスに頼るのもなーと思って一旦削除しました。
DNSのaaaaが消えてたのもその理由
実験用にアカウントは残していますけど
サーバーには後に別の振り方をして大失敗しました

■自宅用ルーターを変更しました
バッファローのWZR-1750DHPを使っていたのをNECのWG1400HPへ変更
バッファローのもIPv4性能は良いのですがIPv6パススルーの性能がよろしくなく、
UPnP(VoIPアダプタで使ってる)の不安定さが目立ったので
これはそのうちまとめて使用感書きます
WG1400HPにはPPPoE IPv6トンネルアダプタ機能がありそれを使いたかったのも一理

■ぷららのPPPoE IPv6使ってみました→使わなくなりました
出オチ
前述のWG1400HPについてるトンネルアダプタ機能を使って接続してみました
クライアントの接続には特に問題出なさそうですが、サーバー公開には実用的ではないみたい
端末側に広告されるアドレスはぷららからのもので、インターネットに出るときはそのまま流し、
NGN側にアクセスする際にはルーター内でアドレス変換しているようです
さすがのNECなので速度のボトルネックはなし
ただし、そもそもぷららのPPPoE IPv6がアドレス非固定付与なので変わる可能性があること、
使ってるDNSサーバーにIPv6のDDNS機能がない(というかIPv6 DDNSなんて本来不要な気がする)、
といった理由で自宅環境で使うのは断念

■iPhone5Sガラス割りました
5月に契約したiPhone5S(docomo)を落として背面のガラスがお亡くなりに
前面には液晶保護ガラスを1枚入れていましたがそちらも粉々になり大打撃
docomoのケータイ補償サービスで交換して頂くこととなりました
入っててよかった保証、これも近いうちにまとめます

■Windows8.1タブレット買いました
瞬間風速的に話題になったvoyo A1 miniを
国内扱い品ではなくてebay購入ですが
中国のセラーから買ったはずなのにオランダから届いたり、
OSがUK版だったりIEのスタートページがhao123だったり
ACアダプタ繋ぐとタッチパネルが盛大にバグったりしましたが小さい本体なのは良いことです

■コミケがありました
いつもどおり友人のサークルの売り子へ
朝にカーペットに飲み物こぼして落ち込んでいましたが朝ごはん食べたら戻りました
単純

■コンタクトレンズを作ったりしてました
人伝のお仕事でHMDを扱うことになり、メガネだと不便ということでコンタクトを作りました
左右で視力が全然違う+両目ともひどい乱視という絶望的な状況ですが度数が合って一安心
聞く話メガネよりコンタクトのほうが矯正しやすいそうです

■コミックトレジャー行ってきました
初大阪イベント参戦ということで大阪へ、食い倒れておりました
大阪には幾度となく行っていますがコテコテな旅行をしたのは始めてかもしれない
イベント自体も熱気あり、他地域のイベントは空気が違って楽しい

■nuro触ってきました
so-netの下り2Gbps回線ことnuroを体験してきました
最終的な接続が1GbEのLANなのでそこでのボトルネックがありますが、
下り900Mbps、上り850Mbpsくらい出てて越を抜かしそうになる
自宅が敷設条件に合わないのが悔やまれます

■Qit契約しました
前述のPPPoE IPv6に叩きのめされたのでIPoE IPv6でアドレスもらうべくQitを契約
v4の環境でもフレッツネクストハイスピードの上限一杯出て思わず笑いが
IPoE IPv6は要は今までのNGNのつなぎ方でインターネットまで出られるよ!ということなので追加の設定なし
付与アドレスも機材変更ない限りは固定なので都合が良い
これでサーバー系も晴れて再度IPv6対応と相成りました
アドレスはaaaaレコード見てね

雑ですがこんな感じです
仕事まわりは省略
そのうち補足したりします

Posted: 2014-10-03
at 17:27 by 入江 萌乃


Categories: サーバー,日記

Comments: No comments


分散鯖を立てる話

どうも、ボケボケしてたら何ヶ月か経っておりました

さて、最近はそうでもないのですが、イベント時期になると実は結構アクセス数が増えるうちのサーバー、転送量の問題が出そうなのでサーバーを増やすことにしました
とはいえ、完全に分散するほどの知識も持ち合わせてないので一部サイズの大きいファイルを別のサーバーにおいてメインを守ろう、という試みです

概要としては、西日本と東日本に各1台サーバーを置いて、サイズの大きいファイルをそちらからも転送させます
ファイルへのアクセスはユーザーに選ばせるのではなく、メインサーバーへのアクセスを勝手に振り分けて対応します
今のところは技術不足のためユーザーからの経路を考慮した振り分けはできないので、東日本ユーザーに対して西日本からデータを送る、ということもありえます

あくまでもメインサーバーの負荷分散ということで、そのへんの実装が済むまではご承知置きください

簡単にご報告だけ
実運用は3月に入ってからです

Posted: 2013-02-18
at 23:28 by 入江 萌乃


Categories: サーバー

Comments: No comments


年末のお知らせ

どうも
なんだかんだで年末まで完全放置してた私です
いろいろお知らせです

■回線こっそり変わりました
引っ越しが無事完了しまして、ファミリーHSに出戻りとなりました
ファミリータイプの中では割りといい環境で今のところ速度低下はないのですが、今後同じPONに乗るユーザーが増えるとどうなるかなーというのはあります
ルーター等の機材は全く変更なしなので体感上差はありません

■年末なのでサーバー設定を変えました
多くアクセスされるリクエストを速く処理するための設定にしてあります
具体的にはDBキャッシュへのメモリ割り当てを増やして、代わりにファイルキャッシュを減らしてあります
アクセス頻度の低いファイルはHDDから読むので処理が遅くなります

年末だからね、しょうがないね

■来年あたりサーバーのソフト入れ換えをします
現在のCentOS5系から6系に変更します
今まで勉強不足でうまい方法を見つけられずにいましたが、やっと6系で今やってることが実現できそうなので、1月中を目処に入れ換え作業をします
メモリ拡張とSSD化も狙ってましたがこれはそのうちに
具体的な日時は決まったらお伝えします

■というかサーバー増えます
これは2月予定なのですが、LBモドキの構成サーバーが一台増える予定です
西日本に増えるよ!
まぁLBモドキはリクエストの処理に難があって404出ること多いので早めに作り直します

今のところそんな予定です
簡単にこんな感じ
来年こそは時計のハード側に手を付けられればいいなーと

Posted: 2012-12-23
at 20:06 by 入江 萌乃


Categories: サーバー

Comments: No comments


« Older Entries