debiancdn

AWS, Content Delivery Network and Debian

カテゴリーアーカイブ: debian

cdn.debian.net と ftp.jp.debian.org の動作に問題があればgithubにおねがいします。

Debianにおけるパッケージ流通はaptが基本的なものになっている。いまどき完全なスタンドアローンで動作しているような例もすくないので、なにかしらaptの御世話になっていることは多いかと思う。

昔のaptの実装ではhttp redirectができないので、http redirectに頼らない誘導方法になっている(現在のaptの実装ではhttp redirectができるので、http.debian.netというサービスが誕生している)。

check_serverの実装自体はRails3.2です。

動作チェック、文句、要望について

以下、内部の説明。

DNSサーバは dns.s.araki.net という名前で、dns_balanceが動作しています。

  • どのDNSを使うかはレイテンシベースのルーティングで3リージョンから選択している。
  • DNSであるdns_balanceは定期的にcheck_serverに対して最新のサーバ生死情報をELBのURL ( http://cdncheck1.araki.net/status/alive )に対してとりにいく。
  • 入手はJSONが使われる。この取得のためのプログラムは gae-surrogate.rbという名前

チェックサーバは、

  • チェック対象である世界中のDebianミラー200台をSQSに順次登録する。
  • チェックサーバの動作は http://cdncheck1.araki.net/view/index で確認できる。

チェックするためのコードはcheck-receive-forward.rbというファイル。

  • SQSからチェック対象ホストを1つ抜き出す。
  • チェックは対象ホストの http://対象サーバのアドレス/debian/project/trace/ftp-master.debian.org を確認し、最終ミラー時刻が8日以内であることを確認する。不達であったり遅延が大きい場合には”alive=0″として登録される。
  • チェック終了したらSQSから消す。
  • チェック結果はSimpleDBに登録

    地理情報の話やAS情報の話は又の機会に。

       

      広告

      ブラジル行きがなくなった:visa取得まにあわず

      visa取得まにあわず、ブラジル行きがなくなった。

      ブラジルに日本人が入国するためには、何であれビザが必要。

      このビザは事前にwebで申請(いちおうブラジル領事館の現地でも数台PCがおいてある)したあとで、領事館にでかけていって申請して、5営業日後に発行してもらわなければならない。

      まず、ブラジル大使館へvisaの案内ページ(下図)から、visa申請ページに行く。

      すると。この矢印の先がなんとブラジル政府の認証局。このオレオレっぷりをどうすんだ! という人のために領事館にPCがおいてあると思われます。

      月曜日~金曜日:一般申請 10:00~12:00という時間に、45mm x 35mm のカラー、無帽、背景は白の写真、E-チケット,残高証明書が必要だった。

      残高証明書は、MUFGでは750円くらいで、新生銀行では無料でつくれた。いずれも急ぎと言ったせいか3営業日くらいで届いた。

      今回はなんとE-ticketが私を呼んだ主催団体のスポンサーから届くのが遅れに遅れたので、visa発行期限にまにあわなかったわけでした。

      これはおくらいりにとなってしまいました。

      Debian大統一勉強会いってきた

      Debian大統一勉強会ということで、昨晩京都にのりこんで、朝から一日参加。
      午前中のpamの話も聞きたかったのだが、KSPの準備(自分の提出が遅れたため)をしていて聞けなかったことが残念ではあった。

      自分の発表は、けっこうウケてたのかな。。コメントがあるかたはぜひください。
      ブラジルでの本番はもっともっと技術の裏にいきます。

      debianミラーリスト更新の前準備

      Debian worldwide mirror sites

      Debian worldwide mirror sites This is a complete list of mirrors of Debian. For each site, the different types of material available are listed, along with the access method for each type.

      さて、それでこのリストにあるものを全部しらべてみたところ、IPアドレスがDNSに登録されていないものがこんなにたくさん。

      "volatile.debian.or.at"
      "mirror.pacific.net.au"
      "debian.das.ufsc.br"
      "debs.ifsul.edu.br"
      "mirrors.geekbone.org"
      "debian.forpro-creteil.org"
      "debian2.forpro-creteil.org"
      "hp.debian.or.jp"
      "www.cohsoft.com"
      "mirror.debian.mn"
      "debian.eso-es.net"
      "debian.secsup.org"
      "cudlug.cudenver.edu"
      "ftp.grokthis.net"
      

      hp.debian.or.jpとかなつかしい。

      このリストには、Includes architectures という欄があるのだが、http://www.debian.org/ports/#portlist-released にある

      alpha amd64 arm armel armhf hppa hurd-i386 i386 ia64 kfreebsd-amd64 kfreebsd-i386 m68k mips mipsel powerpc s390 s390x sparc

      の全て(非公式移植版もすべて)を持っていたのたった3つだった(なんてことだ..)

      • ftp.freenet.de
      • debian.cict.fr
      • debian.topstudio.co.jp

      たったこれだけ。

      Route53のlatency based routingの利用

      Multi-Region Latency Based Routing (http://goo.gl/wkkra ) という機能がAWSのDNSサービスであるRoute53から発表されました。

      そもそも、cdn.debian.netの全体図はこんな具合。cdn.debian.netの再実装開始という記事

      dns_balanceが動作しているホスト(当然DNSサーバが動いている)に対して、どうやって早く接続するのか、という問題がある。

      今回発表された、Multi-Region Latency Based Routing で、日米欧で動作させているdns_balanceに対してエンドユーザ(の使っているDNSキャッシュサーバ)を誘導するようになりました。

      これまでは、日本のユーザでも一定の割合でヨーロッパのDNSサーバを参照する場合があった(キャッシュサーバの実装次第)のが、なくなり、300から500msecほど(平均ではその1/3)解決までの時間が短かくなったはずです。

      ftp.jp.debian.orgが半日止まっていた件

      こんばんは。cdn.debian.netftp.jp.debian.orgなどの管理をしている荒木です。

      本日未明から14:06まで上記Debianミラーサーバへの到達性が著しく低下する事故が発生しました。
      100%ではありませんが、日本からの80%を越えるアクセスについて、到達できない状態が続きました。

      本MLに情報をおよせになった、野田様、ご意見ありがとうございます。
      おっしゃる通り、「いかがなもの」と感じられたのかと思います。
      今回の事は、本来動作しているべき死活監視が意図通り作動しなかったことによるものでした。


      死活監視は
      1. 死活監視対象情報をキューに蓄積、
      2. 死活監視プログラムがキューから取得、死活監視情報をDBにかきこみ、キューから消去

      という二つのプログラムで構成されています。
      今回の問題は、1は正常動作しているものの、通常2箇所で動作している2のプログラムが停止したことによります。

      時間経過で示します。

      未明(時間不明) jaistにおけるミラーがメンテナンス開始。それに伴いミラーサーバの利用が困難に。
      11:47 twitterで、石川むつみさんから、第一報。その後数分で問題を確認。
      13:44 死活監視キューの処理を開始
      13:50 通常の方法ではキュー処理がまにあわないのでキューを全削除
      14:06 3つあるDNSのうちひとつ目の処理終了
      14:11 障害対応終了
      14:20 キューの最大保持時間を削減
      15:11 キューの数を監視し、一定数を越えると通知する仕組みを実装し、利用開始

      今回の対策により確認キュー処理の遅れに気がつかずにそのままになることはないはずですが、
      2のプログラムそのものを動作させることができるノード数は現状の2からさらに追加することで対策をします。

      今回は死活監視システムそのものに問題があったため、対応できるのが荒木しかおりませんでした。

      [皆様にお願い]

      障害情報を私に伝えてくださる方がいらっしゃったら、どうぞ遠慮なくお知らせください。
      関係しそうなサーバの計画メンテナンスなど私にリマインダ下さるかたがいれば大歓迎です。

      また、2のプログラムを動作させててもかまわない方がいらっしゃれば御一報ください。
      外部から接続できる必要はありません。HTTPでの外部インターネットにアクセス可能であればノートパソコンでも
      動作します。

      最後に、本サービスは今後も改善を続けてまいります。
      公開の場であれば、障害情報や要望なども広く受けつけておりますので、どうぞ遠慮なく。

      cdn.debian.netの作業

      cdn.debian.netのDNSをひとつ日本でたちあげ。そしてサーバチェック用のスクリプトもちゃんとはしらせた。

      もうひとつやることがあるので明日適当にやる。

      EC2南米(ブラジル)リージョン用のDebian AMIを作成した

      特に誰からも作ってくれとは言われてないのだが、南米リージョン用にDebian squeezeのAMIを作成した。例えば、EBS backedの64bit環境でブートできるようになった。

      他のリージョン用にも、Debianでは半ばオフィシャルのAMIを公開している。詳細は、http://wiki.debian.org/Cloud/AmazonEC2Image で確認できる。

      RightScaleのものは違うが、tomと私の作ったAMIは完全にクリーンなので安心して使ってOK。

      arch version AMI ID disk size maintainer login user
      32bit squeeze ami-a627f8bb instance 10GB ar@debian.org root
      32bit squeeze ami-d427f8c9 EBS 10GB ar@debian.org root
      64bit squeeze ami-0626f91b instance 10GB ar@debian.org root
      64bit squeeze ami-3826f925 EBS 10GB ar@debian.org root

      SQSいじり

      SQSをいじる via ruby-aws SDKで過ぎる休日であった。

      cdn.debian.netの再実装開始

      それにしてもこの通信貧弱な土地からでは、シンガポールも東京もUS東西も、GSLBもそんなのかんけーねえ。
      が、テキストベースなIRCとtwitterならなんとかなることがわかったので、cdn.debian.netの再実装を開始。

      中の構成はこんな具合。

      • dns_balanceは日本に2つ地理的に分散した場所(これはAWSではない)と、AWSのus-westとeu-westにおいてある。
      • 一般のユーザさんというかapt-getをすると、dns_balanceにつながって、そのユーザに近いサーバに誘導される。
      • dns_balanceは定期的にcheck_serverに対して最新のサーバ生死情報をELBのURLに対してとりにいく。そこではJSONが使われる。

      開発:
      このcheck-serverは東京リージョンで動かす。
      だが、手元のマシンからでもSQSもSimpleDBもたたけるので、その状態でコードを書ける。