ソースの表示以前のリビジョンバックリンク全て展開する/折り畳む文書の先頭へ Share via Share via... Twitter LinkedIn Facebook Pinterest Telegram WhatsApp Yammer Reddit Teams最近の変更Send via e-Mail印刷パーマリンク × « Micron 9200 MAX 1.6TBのベンチマーク NVMe SSDのRelative Performanceについて » ZFSのヤバげな機能Special Allocation ClassがFreeBSD 12.2で対応されてた OpenZFS 2.0リリースの陰でひっそりと、FreeBSD 12.2-RELEASEのZFS実装にSpecial Allocation Class(以下、SACと略すことがある)が追加されていた。 時系列的にはOpenZFS 2.0が2020年12月1日、FreeBSD 12.2Rが10月27日リリースなので、まったく陰ってはないんですけどね、インパクトありそうな機能の割にはリリースノートに記載がなく、zpool statusしたら「プールのアップグレードができるぜ!」と出たので調べてみたら追加されていたという。関連するコミットはこの辺→Rev.354382 Rev.354385 Rev.354941 Special Allocation Class自体はZoL 0.8.0で2019年5月24日にリリースされ、その後、illumosへのバックポートを経て、めでたくFreeBSDに取り込まれた模様。ZFS実装が新生OpenZFSベースに切り替わろうとしている中で、Legacy ZFSをきっちりメンテする姿勢には頭が下がります。 で、肝心のSpecial Allocation Classは何かというと、I/O性能に直結するデータを専用のvdevに格納して性能改善を図るもののようだ。多少正確さを欠く表現だが、階層化ストレージのZFS版といえる。 ZFSはターゲットとするデータの種類によってvdevをAllocation Classという概念で分類し、OpenZFS 2.0時点では以下の5種類のクラスが定義されている。ちなみにAllocation Classの考え方はdRAIDで導入され、その後、開発コミュニティによる汎用化を経て現在の形となったそうだ。 クラス SAC 用途 専用vdevを割り当てた時の効果 Normal × 通常のデータを扱うvdev。ミラーとかRAIDZとか。 Log × ZILのレコード。いわゆるSLOG。 同期書き込みの高速化 Dedup ○ 重複排除テーブル(DDT)のデータ 重複排除パフォーマンスの向上とDDTのメモリ使用量の削減 Metadata ○ プールとファイルシステムのメタデータ メタデータ操作(ファイル一覧の取得など)パフォーマンスの向上 Small Blocks ○ レコードサイズ以下のブロック 小さなサイズの膨大なI/O性能の改善。詳細は後述 表で○を付けたクラスがSpecial Allocation Classとされている。それぞれのSACの役割は名前のごとくで、専用vdev (Special vdev)を割り当てるとそれなりに効果がありそうだ。とりわけSmall Blocksは劇的な性能改善の可能性(PDF)を秘めている。 ZFSのファイルI/Oは原則128KiB単位1)で行われる。それに満たないデータは、より小さなレコードが用いられることとなり、これらの小レコードがI/O性能にそれなりに影響するそうだ。Small Blocksは指定サイズ以下のレコードの読み書きをSpecial vdevにオフロードするような形となる。つまり、Special vdevとしてI/O性能が高いデバイス──要はSSDを割り当てると、その特性を活かして膨大な小規模I/Oを捌けるようになり、全体としてスループット向上が見込めるというワケだ。 ここで注意が必要なのは、Small Blocksの処理はファイルサイズベースではなく、レコードサイズベースで行われるということ。つまり、小さなファイルの全体がSpecial vdevに格納される訳ではない2)。ZFSの書き込みは一旦キャッシュされ、トランザクショングループ(txg)にまとめられた後にレコード単位で書き出されるため、必ずしも小さいファイル=小さなレコードとは限らない。逆に、大きなファイルでもレコードサイズ以下の端数は必ず存在するわけで、こうしたtxgを経てなおレコードサイズ未満となった分がSpecial vdev行きとなるようだ。このあたりが一般的な階層化ストレージと大きく異なる部分である。 他の階層化ストレージで見られる最頻ファイルをSSD層に配置する、といったことは(現時点では)できないが、ZFSではpL2ARC(とARC)がその役割を担っていると思われる。都度special_small_blocksの値を調整しSpecial vdevへの書き込みを制御してやれば、狙ったファイルをSSDに置くこともできなくはないが…… Small Blocksの対象となるブロックサイズは、レコードサイズ以下の2の冪を任意に指定できる。128KiB超のレコードサイズを許可するlarge_blocksフィーチャーと組み合わせると、よりパフォーマンスチューニングの幅が広がるだろう。なお、FreeBSDはレコードサイズが128KiBを超えるデータセットからの起動には対応してないので要注意。 Special Allocation Classで性能向上が見込める一方で、その仕組み上、Special vdevが死ぬと一発でプール全体のデータが飛ぶ恐れがある、というかメタデータという極めて重要なデータが飛ぶんだから、ほぼ確実に死ぬと思われる(→実際に試して死ぬことを確認)。なので今まで以上に冗長性には留意する必要がある。信頼のおけるSSDで最低でもミラーリング、可能なら電源喪失保護付きSSDで3重ミラーにしたいところ。 Special vdevの容量が一杯になった場合は、従来通り普通のvdevの方が使われるそうなので、その辺は特に気にしなくてもよい模様。 もし試す場合は、プール(普通のvdev)とSpecial vdevのashift量を一致させること。もう修正済みかもしれないが、異なるashiftでプールに追加するとSpecial vdevの取り外せなくなるバグがあるっぽい。ashift量はvdevごとに独立してて、プール作成時は気にするもののvdev追加時はついつい忘れちゃうんだよね…。 参考サイト Metadata Allocation Classes by don-brady · Pull Request #5182 · openzfs/zfs · GitHub Pool Allocation Classes - 5182 ZFS Allocation Classes / Special VDEV | ServeTheHome Forums ZFS Metadata Special Device: Z - Wikis & How-to Guides - Level1Techs Forums Using Allocation Class(PDF) Allocation Classes Feature - Benchmarks and use case on OmniOS Ignore special vdev ashift for spa ashift min/max by don-brady · Pull Request #11053 · openzfs/zfs · GitHub Bug #11840: Remove of a special vdev with different ashift than the pool vdevs results in an OmniOS panic/pool corrupt - illumos gate - illumos 1) データセット毎にrecordsizeプロパティで変更可能 2) Small Blocksの閾値をレコードサイズと同値にして全データをSpecial vdevに送ることは可能だが、それなら最初からSSDでプールを組んだ方が良い Comments как работает индексация сайта прогон на трастовых сайтах покупка статей для продвижения сайта скидки промокоды форум книга промокод на скидку бездепозитные бонусы рубли http://ikeynote.cn/home.php?mod=space&uid=3741531 joki joya промокод на скидку https://www.alpea.ru/forum/user/20154/ купон скидка условия фудзияма купон на скидку 2022 статейный прогон сайта запрет индексирования страницы https://halqym.kz/user/FloydEvach/ сервис прогона по трастовым сайтам статейный прогон сайта по трастовым сайтам каталоги статей для продвижения сайта http://ctor.com.ua/user/Richardruilt/ литмаркет купоны на скидку http://forum1.shellmo.org/member.php?action=profile&uid=1794243 полностью закрыть сайт индексации ускоренная индексация сайта в поисковых системах бесплатно когда можно делать прогон сайта https://dobro.ru/volunteers/93784434 пит стоп шиномонтаж купон на скидку https://horoshava.ru/forum/user/22638/ трастовые базы сайтов для прогона промокод сбераптека на скидку промокод на скидку в золотом яблоке http://woo.amonds.kr/bbs/board.php?bo_table=free&wr_id=234459 отправить страницу на индексацию http://photobase.ro/profile.php?uid=61541 трастовые базы сайтов для прогона http://kgti.kg/index.php?subaction=userinfo&user=ErnestGoony прогон сайта по каталогом прогон по трастовым сайтам бесплатно для автоматического прогона по сайтам https://transport-cd.com.ua/wr_board/tools.php?event=profile&pname=Scottgoorn прогон сайта по закладкам бесплатно http://asiplastic.com/profile.php?lookup=10087 прогон сайта по белым каталога http://www.pegasusglobalinc.biz/__media__/js/netsoltrademark.php?d=forensicscommunity.com/blog/%D0%9A%D0%BE%D0%BD%D1%81%D1%83%D0%BB%D1%8C%D1%82%D0%B0%D1%86%D0%B8%D1%8F-%D1%82%D1%80%D0%B0%D0%B2%D0%BC%D0%B0%D1%82%D0%BE%D0%BB%D0%BE%D0%B3%D0%B0 прогоны влияют на позиции сайта http://redline.tw/__media__/js/netsoltrademark.php?d=jisangmarket.kr/bbs/board.php?bo_table=free&wr_id=109740 промокоды на скидку в золотом яблоке 2022 http://niagara74.ru/bitrix/click.php?goto=http://matripedia.de/doku.php?id=сервисы_для_прогона_сайта_по_каталогам купон skillfactory на скидку http://i-ford.ru/bitrix/rk.php?goto=http://asocialnetworks.blogspot.com/2016/02/python-networkx.html http://jkmulti.vip/bbs/board.php?bo_table=free&wr_id=2331397 https://39504.org/member.phpaction=profile&uid=9695 http://armrus.org/extranet/forum/user/142152/ http://wiki.willmackintosh.org/doku.phpid=Интернет-магазин_чая_и_кофе_«Магдомир» start <history>326 readings wiki] http://site0405.ru 1 | вот они все | 2024-05-05 09:48 | reply Name E-Mail Website 人間の証明として、ボックス内の全ての文字を入力してください。 この項目は空のままにして下さい:Preview Comment blog/2020/2020-12-08.txt 最終更新: 2022-03-04 11:37by Decomo