スライド 1

Similar documents
Evalution of Linux Container(LXC) on Embedded Linux 株式会社富士通コンピュータテクノロジーズ町田裕樹 1201ka01 Copyright 2013 FUJITSU COMPUTER TECHLONOGIES LIMITED

平成22年度「技報」原稿の執筆について

FUJITSU Cloud Service for OSS 「コンテナサービス」 ご紹介資料

CLUSTERPRO X IIJ GIO インフラストラクチャー P2 動作検証報告 2017 年 11 月日本電気株式会社クラウドプラットフォーム事業部 CLUSTERPROグループ 1 NEC Corporation 2017

3 検証結果 3.1 ソフトウェアのインストール Red Hat Enterprise Linux 5.7 は最小構成でインストールし 最新バージョンにアップデートした Thirdware Linux-HA を構成するパッケージ (DRBD Heartbeat Pacemaker) は LINBIT

142 Debian.Deb 銀河系唯一の Debian 専門誌 LXC

Microsoft Word - qtsi_120246jp_rhev.doc

rndc BIND

ERDAS IMAGINE における処理速度の向上 株式会社ベストシステムズ PASCO CORPORATION 2015

PowerPoint プレゼンテーション

CLUSTERPRO for Linux PostgreSQL HowTo

目次 第 1 章 環境構築 システム概要 ロードバランサ ジーンコードサーバー コンテンツサーバー (PC サイトサーバー ) コンテンツサーバー (PC サイトサーバー ) DNS... 6

ServerView RAID Manager VMware vSphere ESXi 6 インストールガイド

延命セキュリティ製品 製品名お客様の想定対象 OS McAfee Embedded Control 特定の業務で利用する物理 PC 仮想 PC や Server 2003 Server 2003 ホワイトリスト型 Trend Micro Safe Lock 特定の業務で利用するスタンドアロン PC

Dockerの商用サービスでの利用事例紹介

Microsoft Word - ssVPN MacOS クライアントマニュアル_120版.doc

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

2

OpenStack 環境における Container as a Service の提供と課題 株式会社サイバーエージェント アドテク本部 技術戦略室 Central Infrastructure Agency 青山 真也

BMR for NVBU NIC bnx2.ko SVR/CLNT 上での SCSI megaraid_sas.ko 自動認識デバイス Partition 構成 (RHEL6.0 uefi/lvm 構成の場合 ) Partition1 /boot/efi EFI 200MB Partition2 /


QNAP TurboNAS Container Station 設定手順書

2010年4月~6月 協業実績報告

クラスタ構築手順書

目次 1. Serverspec とは 1.1. Serverspecとは 1.2. Serverspecで出来る事 2. セットアップ 2.1. 必要なもの 2.2. インストール 3. デモ 3.1. デモ環境について 3.2. テスト対象サーバーの登録 3.3. サンプルテストの中身 3.4.

ServerView RAID Manager VMware vSphere ESXi 5 インストールガイド

はしがき 本書は CLUSTERPRO MC ProcessSaver 1.0 for Linux ( 以後 ProcessSaver と記載します ) と CLUSTERPRO X 3.1 for Linux ( 以後 CLUSTERPRO と記載します ) を組み合わせて フェイルオーバクラスタ

IIJ Technical WEEK アプリ開発を楽にするRuby PaaS「MOGOK」について

MIRACLE MH for SNMP サポート SLA( サービスレベルアグリーメント ) ML-CS-0747 本書は サイバートラスト株式会社 ( 以下 サイバートラスト ) が MIRACLE MH for SNMP サポート ( 以下当サポートサービス ) の内容について説明するものである

ECL2.0 ロードバランサーNetScaler VPX 10.5 VRRP設定

最も一般的な手法: ファイアウォールによってノード間の MPI 通信がブロックされた場合の対応方法

SigmaSystemCenter 仮想マシンサーバ(ESX)のIPアドレス変更手順(SSC3.0~3.5u1)

Microsoft Word - nvsi_080177jp_trendmicro_bakbone.doc

PowerPoint プレゼンテーション

仮想ホスティングの運用 理想と現実

SIOS Protection Suite for Linux v9.3.2 AWS Direct Connect 接続クイックスタートガイド 2019 年 4 月

今日からできる レガシーシステムの段階的コンテナ化

ライフサイクル管理 Systemwalker Centric Manager カタログ

Samba on CLUSTERPRO for Linux HOWTO

SigmaSystemCenter ネットワークアダプタ冗長化構築資料 第 3 版

CLUSTERPRO MC ProcessSaver 1.2 for Windows 導入ガイド 第 4 版 2014 年 3 月 日本電気株式会社

スライド 1

CLUSTERPRO/システム構築ガイド

TFTP serverの実装

Troubleshooting SSH connections with Reflection X

アジェンダ はクラウド上でも十分使えます 1. の概要 とは の導入事例 で利用される構成 2. をクラウドで使う クラウドサービスの分類 Amazon Web Services による構成例 2

Microsoft PowerPoint - Android+TPMによるセキュアブート_KDDI研_後日配布用

ダンプ取得機能強化サポートオプション Enterprise Edition

CLUSTERPRO MC ProcessSaver 2.1 for Windows 構築ガイド 2016(Mar) NEC Corporation はじめに 責任範囲 適用範囲 概要 事前準備 クラスタ設定

Microsoft Word - nvsi_050090jp_oracle10g_vlm.doc

Automation for Everyone <デモ で実感できる、組織全体で活用できるAnsible Tower>

NFS On CLUSTERPRO for Linux

アライドテレシス・コアスイッチ AT-x900 シリーズ で実現するエンタープライズ・VRRPネットワーク

Microsoft Word - ManagerIPChange.doc

X-MON 3.1.0

下位互換サポートの注意点 下位互換サポートにはいくつか注意点があります 1. 全体的な注意点 と 利用する各製品の注意点 最後に 7. そのほかの注意点 をすべて確認してください 1. 全体的な注意点 ライセンスキーの登録 ( 重要 ) 利用中の環境で Arcserve Backup の上書きインス

FUJITSU Software Systemwalker Centric Manager Lite Edition V13.5 機能紹介資料

1. はじめに Systemwalker Desktop Patrol V 以降でセキュリティ監査として BIOS パスワード設定の監査 を提供しています しかし Systemwalker Desktop Patrol メインメニュー のセキュリティ情報に表示される起動パスワード 設定パ

自己紹介 名前 所属 飯田雄介 ( いいだゆうすけ ) 主な活動 Linux-HA Japan プロジェクト Pacemaker 本体の機能改善や 外部ツールの開発を行っています Linux-HA Japan から pm_logconv や pm_crmgen といったツールを提供しています 2

2017/8/2 HP SiteScope software 監視機能対応表 この監視機能対応表は HP SiteScope software v11.33) に対応しています モニタ モニタ説明 モニタ説明 SiteScope for Windows SiteScope for Linux ネット

2013年『STSSスキルコミュニティ』 テーマ別Kickoff資料

VMware vsphere 6.5 強化内容 以下は VMware vsphere 6 からの主な強化内容です スケーラビリティの拡大 o 1 クラスタあたり 64 台の ESXi ホスト 8000 台の仮想マシン o 1 ホストあたり 576 個のプロセッサ 12TB RAM 1024 台の仮想

HAクラスタで PostgreSQLを高可用化 (後編) ~ レプリケーション編 ~

CLUSTERPRO MC StorageSaver 2.2 for Linux リリースメモ 2017(Apr) NEC Corporation ライセンス パッケージのインストール セットアップ マニュアル 補足事項 注意事項

富士通製プラットフォーム 「PRIMEPOWER/PRIMERGY」及び、富士通製ミドルウェア 「Interstage」とVantage Analyzer 動作検証完了報告書

DNSサーバー設定について

自己紹介 Aboutme: Name: Watanabe Hayato, Fammiry: [妻:1, 娘:1, 息子:1], Hobby: アクアリウム ものづくり Account: Facebook: 渡邉 隼人, aboutme:

CLUSTERPRO MC ProcessSaver 1.0 for Windows 構築ガイド 2012(Sep) NEC Corporation はじめに責任範囲適用範囲概要事前準備クラスタ設定

Rev:1.0 Arcserve Backup 18.0: 下位互換サポート 1 下位互換サポートについて 下位互換サポートの対象製品と対象バージョン 注意点 全体的な注意点 下位互換バージョンのライセンス登録


日本 PostgreSQL ユーザ会第 28 回しくみ + アプリケーション勉強会 Zabbix を使って PostgreSQL を監視してみよう 2014 年 2 月 1 日 TIS 株式会社中西剛紀 (Yoshinori Nakanishi)

Transcription:

LXC の本番利用事例 株式会社インターネットレボリューション インフラ課桑澤拓也 1

自己紹介 株式会社インターネットレボリューション 成り立ち : コナミデジタルエンタテインメントと IIJ の合弁会社 事業内容 : デジタルエンタテインメント事業のシステム業務インターネットサービスの開発 運営 発表者 アミューズメント施設向けサービスのインフラ担当者 (e-amusement サービス / システム ) 設計 ~ 構築 ~ 運用までひと通り 2

e-amusement システム クライアントの数 ゲームきょう体の数 - 家庭用ゲーム機やスマートフォンアプリ等と比べて数が少ない - リクエストが爆発的に増えることは無いので スケーラビリティはそれほど求められない 1 プレーごとにお金がかかっている - 可用性は重要 3

LXC とは? LXC はよく強力な chroot と本格的な仮想マシンの中間のようなものに見なされます LXC の目的は 可能な限り標準的な Linux のインストール環境に近く しかし別々のカーネルは必要ないような環境を作ることです Linux Containers - LXC - イントロダクション https://linuxcontainers.org/ja/lxc/ 主にシステムコンテナを作るために使用するアプリコンテナを作ることも可能 類似のもの Virtuozzo (OpenVZ) systemd-nspawn 4

LXC のここが好き 小さいオーバーヘッド - VM ほどの隔離性は無いが VM よりも軽量 システムコンテナ - VM に近い感覚で利用できる 豊富なテンプレートイメージ - すぐに使い始められる - 検証時のバージョンの CentOS テンプレートは若干問題があったが 5

LXC のここが好き 一斉コマンド実行 / ファイル操作が可能 - ホスト OS からコンテナ内でコマンド実行 (lxc-attach) # for c in $(lxc-ls --active); do lxc-attach -n $c -- systemctl reload sshd done - ホスト OS からコンテナ用のファイル操作 ( ホストディレクトリの一部を rootfs として利用している場合 ) # md5sum /var/lib/lxc/*/rootfs/etc/hogehoge 6

LXC のここが好き コンテナフック - コンテナを起動 停止 クローンする際にスクリプトを実行できる - フックタイプによって様々な実行タイミングを選択可能 lxc.hook.pre-start lxc.hook.clone lxc.network.script.up lxc.hook.start 詳細は lxc.container.conf(5) を参照 7

他の Linux コンテナ実装について OpenVZ (Virtuozzo) - 検証時はまだ RHEL 6 ベース - kernel 自体にかなり手を入れているのが気になった - 現在ではソースコードも公開されている systemd-nspawn 検証時 (CentOS 7.0.1406) は - 特にネットワーク周りの機能が不足していた - 今なら選択できるかもしれない Docker - できなくはないが システムコンテナ向けではない - stateless, immutable な環境向き 8

LXC 利用システム ホスト OS - CentOS 7.1.1511, LXC 1.1.2, Python3 - Libvirt や LXD は使わず lxc-* コマンドを利用 - LXCFS を真似たリソース監視用の自作ツール 2 台の物理サーバ - ゲームタイトルやシステムの用途毎にコンテナを作成 - 現在 1 物理サーバあたり 40 以上のコンテナが稼働 DB サーバコンテナ - Corosync, Pacemaker による HA (2 コンテナで 1 セット ) - Stonith なし 2 ノードクラスタ, VIPcheck によるマルチマスター防止 - PostgreSQL 9.4, 同期レプリケーション, 共有ディスクなし 本番環境での運用実績は 1 年程度 9

システム構成 コンテナ (LXC 1.1.2) コンテナ (LXC 1.1.2) 同期レプリケーション PostgreSQL 各コンテナに PostgreSQL, Pacemaker, Corosync PostgreSQL Pacemaker Corosync クラスタ通信 Pacemaker Corosync init (systemd) x 40 containers init (systemd) ホスト OS (CentOS 7.1.1503) ホスト OS (CentOS 7.1.1503) 物理ホスト インターコネクト 物理ホスト SSD HDD SSD HDD サービス用 10

コンテナのネットワーク ( 全体イメージ ) 1 号機系 ( 通常時 Master) 2 号機系 ( 通常時 Standby) コンテナ VIP コンテナ VIP インターコネクト コンテナ VIP VIP コンテナ コンテナ VIP VIP コンテナ サービス用 11

コンテナのネットワーク ( 詳細 ) Master になるコンテナは VIP を作る ( 仮想 MAC アドレスを使うために IPaddr2 を改造した Resource Agent の VIP) コンテナの Namespace ホストの Namespace vmac0 (macvlan) eth0 (macvlan) VIP bond0.10 (802.1q tagging) bond0 (bonding) IPaddr2 の VIP eth1 (802.1q) VIP bond1 (bonding) em1 (phys) em2 (phys) em3 (phys) em4 (phys) p2p1 (phys) p2p2 (phys) サービス用 インターコネクト テンプレートは bridge + veth になっているので そちらが一般的? 12

macvlan Container Container Container 同じセグメントでも通信不可 ( セキュリティ的に望ましい ) eth0 (macvlan) eth0 (macvlan) eth0 (macvlan) IP IP IP 別セグメントの場合は外部の L3 機器経由なら通信可能 IP Host Router Router bridge mode 同一ホスト上のコンテナ間の直接通信が可能 private mode 同一ホスト上のコンテナ間の直接通信は不可能など複数の動作モード 13

仮想 MAC アドレス VIP VIP VIP ほぼ同時に大量の GARP FDB 更新 OK 某社 L2 スイッチ 某社 L3 スイッチ ARP cache 更新一部 NG??? macvlan インタフェースに HA クラスタ毎に共通の MAC アドレスを設定 ARP cache の更新を不要にする 正しい MAC アドレスで ARP 応答させるため 以下の kernel paramter に注意 arp_filter, arp_ignore, arp_announce, rp_filter https://github.com/acassen/keepalived/blob/master/doc/note_vrrp_vmac.txt http://qiita.com/albatross/items/8c32615b5154acf712f2 14

運用の悩み コンテナのリソース制御 - CPU cgroup で制御可能だが 適切な設定を定められず野放し - ディスク使用量 XFS project quota で疑似的にコンテナ毎の上限を設定 - ディスク I/O cgroup で制御しきれず野放し direct I/O は制御可能だが buffered I/O は ( 現状 ) 制御不能 - ネットワーク I/O tc などで制御可能だが 野放し 15

運用の悩み コンテナのリソース制御 - メモリ使用量 cgroup で物理メモリの上限を設定している swap はホストが持つ領域を共有するので管理が難しい How is SWAP handled by LXC? Proxmox Support Forum https://forum.proxmox.com/threads/how-is-swap-handled-by-lxc.26756/ memory.swappiness = 0 にしておけば swap 領域が空いている場合でも swap out せずにその cgroup の中で OOM が発生してプロセスが kill される lxc の設定なら以下のようにする lxc.cgroup.memory.swappiness = 0 16

運用の悩み コンテナのリソース監視 - CPU 使用量 cgroup で CPU 時間を取得できるが CPU 時間ベースの見方に慣れていない 自作ツールで従来通り load average を見られるようにした netlink 経由で cgroup 毎の running, uninterruptible なプロセス数を知ることができる ( 詳細はカーネルソースの Documentation/accounting/ 以下を参照 ) ので 定期的に調べて calc_load() と同じ方法で計算し結果を /proc/uptime, /proc/loadavg として見せる netlink で通信するプロセスはホストと同じ netns にいる必要がある 17

自作ツールの動作イメージ コンテナの Namespace ホストの Namespace uts net net process pid ipc ipc uts mnt /proc/uptime /proc/loadavg /proc/meminfo /proc/diskstats pid uts net mnt process pid ipc mnt /proc/uptime /proc/loadavg /proc/meminfo /proc/diskstats 18

運用の悩み コンテナのリソース監視 - ディスク使用量 従来通り df コマンドや snmp で監視可能 (XFS project quota の機能によるもの ) - ディスク I/O 自作ツールで LXCFS と同じように cgroup の情報 blkio.throttle.io_serviced blkio.throttle.io_service_bytes を /proc/diskstats として見せて従来のツールに対応 正常に測定されないケースもあるようですコンテナに LVM を使わせていれば普通に正しい値が取得できそう - ネットワーク I/O 従来通り ip コマンドや snmp で監視可能 19

運用の悩み コンテナのリソース監視 - メモリ使用量 自作ツールで LXCFS と同じように cgroup の情報 memory.usage_in_bytes memory.limit_in_bytes memory.memsw.usage_in_bytes memory.memsw.limit_in_bytes memory.stat を /proc/meminfo として見せて従来のツールに対応 とは言え sysinfo(2) を使うようなツールには未対応 Memory inside Linux containers Fabio Kung https://fabiokung.com/2014/03/13/memory-inside-linux-containers/ 20

トラブル事例 ある日 systemctl start 実行時にエラーが出るようになる # systemctl start nslcd Error: Too many open files Job for nslcd.service failed because a configured resource limit was exceeded. See "systemctl status nslcd.service" and "journalctl -xe" for details. # systemctl is-failed nslcd failed Too many open files と出るがプロセスが起動する場合もある (active と表示され プロセスが存在する ) 21

トラブル事例 # strace -fy systemctl start nslcd 2>&1 grep EMFILE [pid 672] inotify_init1(in_cloexec) = -1 EMFILE (Too many open files) Error: Too many open files inotify_init1(2) EMFILE The user limit on the total number of inotify instances has been reached. # sysctl -a grep inotify fs.inotify.max_queued_events = 16384 fs.inotify.max_user_instances = 128 fs.inotify.max_user_watches = 8192 fs.inotify.max* の値を増やして解決 systemd が inotify を使うので systemd を大量に起動する LXC 環境だと発生しやすい 22

参考 Linux コンテナと LXC 入門 - https://speakerdeck.com/tenforward/1st-kistudy 23