YUMプラグインyum-fastestmirrorはどのように機能しますか?

YUMプラグインyum-fastestmirrorはどのように機能しますか?

コマンドを実行すると、YUMは特定のサーバーを選択し続けているように見えましたが、yum update時には代替サーバーを切り替えて使用することがありました。

あちこちを見てみましょうyum-fastestmirror

YUMとこのプラグインはどのようにこれを行いますか?

答え1

背景

プラグインヤム最速ミラーコンセプトはとても簡単です。単に、各画像に対してYUMが蓄積した時間を含むテキストファイルを維持し、YUMがパッケージをダウンロードするように求められたら、ダウンロード中に最も速く表示されるサーバーを使用します。

時間は次の場所に保存されます。

$ locate timedhosts.txt
/var/cache/yum/x86_64/7/timedhosts.txt

このファイルを調べると、各ホスト名の横に時間が表示されたホスト名のみがあることがわかります。ここでは、最も速いものから最も遅いものの順に並べ替えます。

$ sort -k2,2 /var/cache/yum/x86_64/7/timedhosts.txt
mirror.atlanticmetro.net 0.00165295600891
mirror.cc.columbia.edu 0.00172901153564
ewr.edge.kernel.org 0.00207901000977
mirror.es.its.nyu.edu 0.00217700004578
mirror.siena.edu 0.00543117523193
mirror.pit.teraswitch.com 0.0140120983124
mirrors.rit.edu 0.0208911895752
mirror.clarkson.edu 0.0243170261383
mirror.linux.duke.edu 0.0244128704071
mirror.mia11.us.leaseweb.net 0.0328259468079
mirror.hackingand.coffee 0.0435431003571
ftp.ussg.iu.edu 0.0479228496552
mirror.genesishosting.com 0.0481269359589
repo1.ash.innoscale.net 0.050274848938
mirror.den1.denvercolo.net 0.0838551521301
mirror.keystealth.org 0.134334802628
centos.mirror.ndchost.com 0.140916824341

ここで、次のコマンドを使用して特定のパッケージをダウンロードしたい場合は、特定のパッケージの場所を尋ねるときrepoquery

$ $ repoquery --location java-1.8.0-openjdk
http://mirror.atlanticmetro.net/centos/7.7.1908/updates/x86_64/Packages/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.i686.rpm
http://mirror.atlanticmetro.net/centos/7.7.1908/updates/x86_64/Packages/java-1.8.0-openjdk-1.8.0.222.b10-1.el7_7.x86_64.rpm

構成

yum-fastestmirrorプラグインには独自の設定ファイルもあります。

$ more /etc/yum/pluginconf.d/fastestmirror.conf
[main]
enabled=1
verbose=0
always_print_best_host = true
socket_timeout=3
#  Relative paths are relative to the cachedir (and so works for users as well
# as root).
hostfilepath=timedhosts.txt
maxhostfileage=10
maxthreads=15
#exclude=.gov, facebook
#include_only=.nl,.de,.uk,.ie

このファイルを使用すると、過去に問題が発生したか、何らかの理由で許可されていないと見なされる特定の画像をホワイトリストとブラックリストに追加するようにプラグインに指示できます。

引用する

関連情報