2012年11月3日土曜日

yumで速いミラーサーバーを指定する方法

このエントリーをはてなブックマークに追加
FedoraやCentOSなどのRed Hat系のディストリビューションで、yumに速いミラーサーバーを自動的に選択させる方法として、fastestmirrorプラグインのインストールを勧めている記事がたくさんあります。しかし、これらのディストリビューションの最近のバージョンでは、最初からfastestmirrorプラグインがインストールされているのでその必要はありません。では何もしなくても速いミラーサーバーが使われるかというと、そんなことはありません。

fastestmirrorは必ずしも速いミラーサーバーを選択しません。yumはリポジトリの設定のmirrorlistに示されたURLからミラーサーバーの一覧を取得します。fastestmirrorは一覧に含まれているサーバーについて、接続に掛かる時間を計って一番速いサーバーを選びます。fastmirrorが計っているのは接続の速さなので、そのあとのダウンロードが速いとは限りません。

fastestmirrorが裏目に出ることもあります。日本から取得したミラーサーバーの一覧には日本のものが最初に載っていますが、海外のものも含まれています。fastmirrorが速度を計ったときに、運悪く国内のサーバーの応答が悪いと海外のサーバーが選ばれます。そうして選ばれた海外のサーバーからのダウンロードが速いことはまずありません。

それを避ける方法の一つが、リポジトリの設定ファイルのmirrorlistをコメントアウトしてbaseurlで速いミラーサーバーを指定することです。広く用いられているのはこの方法です。baseurlに一つしかURLを指定しないと、そのサーバーが応答しないときにyumが機能しないので、複数指定したほうがいいです。たとえばCentOSの/etc/yum.repos.d/CentOS-Base.repoなら以下のように指定します。
[base] name=CentOS-$releasever - Base #mirrorlist=http://mirrorlist.centos.org/?release=$releasever&arch=$basearch&repo=os baseurl=http://ftp.jaist.ac.jp/pub/Linux/CentOS/$releasever/os/$basearch/ http://ftp.iij.ad.jp/pub/linux/centos/$releasever/os/$basearch/ gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-CentOS-6
サーバーの選択はあくまでも一例です。二つ目以降のURLにはインデントが必要です。base以外のリポジトリのbaseurlも同様に指定します。複数指定したときにどのサーバーが使われるかは、fastestmirrorが決めます。

もう一つは、/etc/yum/pluginconf.d/fastestmirror.confに以下のようにpreferオプションでサーバーを一つ指定する方法です。この方法はfastmirror.confに一行足すだけで、お気に入りのミラーサーバーが使えるので便利です。
prefer=ftp.jaist.ac.jp
サーバーの選択はあくまでも一例です。mirrorlistのURLの返す一覧に含まれているサーバーであれば、どれでもかまいません。これを指定したら/var/cache/yum以下にあるtimedhosts.txtをいったん削除してください。次からyumは指定したサーバーを使います。指定したサーバーが応答しなければ、ほかの接続が速いサーバーを使います。

0 件のコメント:

コメントを投稿