lxc と sched_setscheduler

lxc と sched_setscheduler

Centosコンテナ内でアプリケーションを実行しようとしていますが、リアルタイムで実行する必要があります。私はそれを見て、lxc.cap.keep = sys_niceを追加するように提案されました。

これを行った後、lxc-startはlxc.cap.keepとlxc.keep.dropだけが並んで使用できないと文句を言いました。実際、グローバル lxc 構成ファイルには複数の lxc.cap.drop があります。

この問題をどのように解決できますか?

答え1

ホワイトリストとブラックリストで考えlxc.cap.keepて行動すればいいです。lxc.cap.drop両方が利用できない場合は、その項目をホワイトリストに追加せず、ブラックリストからそれらを削除してください。実際にホワイトリストが利用できない場合は、ブラックリストが使用中であることを意味します。その能力が削除されたらブラックリストにあるという意味です。だから上書きする必要がありますlxc.cap.drop

これらの構成はすべて含まれていますが、/usr/share/lxc/config(ホスト)ディストリビューションまたはパッケージのバージョンによって若干異なる場合があります。プロフィールに他のプロフィールが含まれている場合もあります。アイテムは蓄積されるため、ファイルを直接編集するか(アップグレード時の注意...)、すべてのアイテムを見つけて置き換える必要があります。

  • 最も簡単にグローバル置換のために、ファイルには次のような行/usr/share/lxc/config/centos.common.confが含まれています。

    lxc.cap.drop = sys_module sys_nice sys_pacct
    

    不要なアイテムを削除し、次に置き換えます。

    lxc.cap.drop = sys_module sys_pacct
    
  • 1つのコンテナでのみ構成を置き換えるには、削除されたすべての機能(一部のlxc詳細ログまたはその他の方法)を列挙する方法を見つけます。手動値のない項目を使用してブラックリストを解放し、「再作成」します。ホストもCentOSの場合、削除後にsys_niceコンテナ設定に追加し、組み込み後:

    lxc.cap.drop = 
    lxc.cap.drop = mac_admin mac_override setfcap
    lxc.cap.drop = sys_module sys_pacct
    lxc.cap.drop = sys_rawio sys_time
    

関連情報