サクサク読めて、アプリ限定の機能も多数!
トップへ戻る
ドラクエ3
www.valinux.co.jp
コンテナ関連 クラウド Kubernetes ネットワーキング 2017/10/02 技術本部 クラウド基盤エキスパート 工学博士 岩本 俊弘 Kubernetes でのネットワーク実装についていくつかの例を挙げて解説していきます。 Kubernetes でのネットワークと言った場合、以下の2つの解釈ができます。 Kubernetes 上のアプリケーション(Pod)側から見たネットワーク 上記の(仮想)ネットワークを実現するための Kubernetes 側の実装 (下回り) 本書では 1. を簡単に説明した後、主に 2. について解説していきます。なお、kubernetes のバージョンは 1.7 を用いています。 Kubernetes は Pod 毎に IPアドレスを割り当てます。同一 Kubernetes クラスタ内の Pod はその IPアドレスを使って相互に通信できます。 この図の
Linux カーネルにおけるタイマー事情 ~第3回 IAマシンのもつ各種計時ハードウェア~ 2015/03/04 技術本部 技術部長補佐 箕浦 真 IAマシンは、歴史的事情などにより、数多くの計時ハードウェアを持っています。以下、順に説明します。 現代の CPU ではいずれも CPU に内蔵されているか、PCH (Platform Control Hub) など CPU 近辺のチップに内蔵されており、少数の水晶発振器を分周/逓倍して利用していると考えられます。したがって、精度 (細かさ) やアクセス速度、機能は異なりますが安定度は同等と考えられます。 PIT (i8254) Local APIC タイマー TSC ACPI 電源管理タイマー HPET PV Clock PIT は Programmable Interrupt Timer の略で、最初の IBM PC 以来搭載されて続けてい
Linux カーネルにおけるタイマー事情 ~第1回 カーネル内での時刻/時間の利用~ 2014/06/05 技術本部 技術部長補佐 箕浦 真 カーネル内ではさまざまな用途で「時間」が使われています。現在時刻の管理のほか、ネットワークのタイムアウト処理や、プロセスのタイムスライス処理など、あらゆるサブシステムで時間がかかわっています。 本稿では、Linux でどのように時計が動いているのか、また、カーネルがどのように時間や時刻を管理しているのかについて解説していきます。 本稿で使用しているシステム環境は以下の通りです。 Red Hat Enterprise Linux 6.x (linux-2.6.32系) 時刻/時間はカーネル内では以下の様な利用方法があります。 時刻の管理 (gettimeofday/settimeofday)、起動からの時間 (uptime) の計測 NTPデーモン (
Linux カーネルにおけるタイマー事情 ~第4回 タイマーハードウェアの抽象化~ 2015/03/11 技術本部 技術部長補佐 箕浦 真 Linuxでは、タイマーハードウェアを 2種類に分類し、それぞれ抽象化してカーネルに機能を提供しています。 Clocksource – 時間の読み取り Clockevents – 指定時刻に割り込み Linux の動作するシステムでは、計時、割り込みともに複数のハードウェアを持つことが普通ですが、ストレージなどとは異なり、いずれも同じ働きをします。そこで、各ハードウェアに対応するデバイスドライバが、精度やアクセス速度などに基づいて rating を定め、システムが rating の高いものを選択して利用します。
LinuxカーネルはARPリクエストを受信した場合、デフォルトの状態では他の(カーネルにLinuxを使用していない)OSとは一部違った挙動をします。あるホストがARPリクエストを受信した場合に、リクエストの内容が受信したネットワークインタフェースに付けられたIPアドレス以外について解決する要求である場合には、非Linux系OSではリクエストを無視します。一方、Linuxカーネルのデフォルトの状態では、ARPリクエストが受信したホストが保持するIPアドレスについての解決要求(※1)であった場合、受信したネットワークのアドレスであるかどうかに関係なく、受信したネットワークインタフェースのリンクレイヤアドレスで応答することになります。 右記のようなネットワーク環境で、このことを確認してみましょう。host-xではLinux-2.6.21を用いたOSが動作しています。host-x上ではproxy
他のシステム同様、OpenLDAPでディレクトリサービスを運用する際にも、アクセス権限の設定を行うことで、エントリ及び属性へのアクセス制御を行えます。アクセス権の一般的な形式は次の通りです。
ダンプの解析をするためには実際のダンプがなければ話が始まりませんので、今回は、ダンプの取り方を簡単に説明します。 本講座では、プラットホームとして、Redhat Enterprise Linux 5(以下RHEL5)を例に取って、解説を進めていきます。RHEL5を使用するのは、ダンプを取るまでの設定が簡単であることと、ダンプの解析環境が整っていることが理由です。 RHEL5のカーネルは、2.6.18をベースにしています。2.6.13からサポートされたkdumpというダンプ採取機能が使えます。 ダンプを取るための設定から、実際にダンプを取るまでの手順は以下のとおりです。 1 kdumpの設定 # system-config-kdump 「kdumpを有効にする」にチェックをする。 # chkconfig kdump on 2 リブート 最初に設定したときは、リブートする必要があります。 3
cfqスケジューラ Linuxカーネルは、ブロックI/Oの処理効率を向上させるさせるための仕組みとして、I/Oスケジューラと呼ばれる機能を提供しています。I/OスケジューラはI/O要求の順序を入れ替えることにより、スループットを向上させたり、特定のI/O要求を優先して実行させたりします。実際のブロックデバイスのセクタに対するアクセス(つまり読み書き)を、要求された順序ではなく、I/Oを最も効率よく行うためにその順序を並び替えるというアイデアは、初期のUNIXの実装から採用されていました。それは、セクタ番号順序に並び替えてI/Oを実行するという単純なものです。ディスク面上を移動するヘッドの動きがエレベータに似ているため、このアルゴリズムはエレベータアルゴリズムなどと呼ばれていました。 現在のLinuxカーネルでは、そのころのアルゴリズムより洗練されたスケジューリング方式を採用しており、目的に
Linuxカーネル内では時刻/時間を表す構造体が必要に応じて色々と定義されています。 long unsigned int jiffies; tick を数えたもので、初期値は 32bit プラットフォームでは -5 分相当となります。64bit プラットフォームでは、-5 分相当の 32bit 値を、符合なしで 64bit に拡張したもの (上位 32bit を 0 で埋めたもの) です。 struct timeval タイマー値を指定する場合に使用します。この構造体のメンバは、tv_sec (秒) と tv_usec (マイクロ秒)で、主にユーザーランド API として使用されます。 struct timespec タイマー値を指定する場合に使用します。この構造体のメンバは、tv_sec (秒) と tv_nsec (ナノ秒) で、ユーザーランド API の他 xtime などで使用され
OpenFlow はスタンフォード大学を中心として2008年に設立された「OpenFlow スイッチングコンソーシアム」が提唱した、スイッチを制御するためのプロトコルです。現在は、2011年に発足した ONF (Open Networking Foundation) が中心となって OpenFlow 技術の規格策定を実施し、標準化や普及を促進しています。 本稿では OpenFlow の概要を紹介します。 OpenFlowプロトコルは L2スイッチを制御するためのプロトコルです。 通常の L2スイッチでは、制御 (MACアドレスの学習や VLAN制御など) 機能とパケット転送機能が一体となって実装されていますが、OpenFlow の世界では両者が分離されており、前者をコントローラー、後者をスイッチと呼びます。 OpenFlowスイッチと OpenFlowコントローラーの間での通信に使用される
本講座では、Linuxシステムを対象にダンプの解析方法について解説していきます。 “ダンプ解析”と言われてもピンとこない方もいらっしゃるかもしれません。先ずは、「ダンプの解析とは何なのか?」という観点で少し解説します。 そもそもダンプとは何かと言うと、マシンに搭載されているメモリの内容を(一般に)ディスクに出力したものです。(「出力する」という行為を、「吐き出す」とか「吐く」という表現もよく使われます。本講座内でも使用いたしますが、お客様向け資料等ではあまり好ましくない表現であることにご注意ください。) ダンプを吐く契機は、カーネルが自分自身の異常を検知したことです。カーネルは、これ以上動作を継続するのは危険と判断するとダンプを吐いてシステムをダウンさせます。(※1)つまり、ダンプが取られたということは、カーネルに障害が発生したということを意味します。察しのいい方はお気づきかと思いますが、
Linux Linux / x86_64の割り込み処理 第4回 Linux/x86_64の割り込み処理 その1 2013/11/29 Linuxが割り込みを受けた際に実行するコードを見ていきます。なお今回はRHEL5系と6系とで大きく異なる部分がありますが、いずれも5系で説明していきます。 デバイスから割り込みが入ると、CPUが自動的に以下の処理を行ないます (割り込みゲート)。 ユーザーモード (ring 3) の場合、ring 0に遷移 割り込みハンドラを実行すべき特権モード (ring) は、IDTに記されています。Linuxの割り込み処理は、ring 0で実行されますので、ユーザーモードでの割り込み時にはこのring 0への遷移が発生します。 ユーザーモード (ring 3) の場合、SS/RSPの設定 (TSSより) TSS (Task State Segment) は、x86/
/* * softintr() * * Switch to the LWP assigned to handle interrupts from the given * source. We borrow the VM context from the interrupted LWP. * * On entry: * * %eax intrsource * %esi address to return to */ IDTVEC(softintr) pushl $_C_LABEL(softintr_ret) /* set up struct switchframe */ pushl %ebx pushl %esi pushl %edi movl $IPL_HIGH,CPUVAR(ILEVEL) movl CPUVAR(CURLWP),%esi movl IS_LWP(%eax),%edi /
Ultra Monkeyによる負荷分散と その拡張 2003年6月20日 黒澤崇宏(kurosawa@valinux.co.jp) VA Linux Systems ジャパン 株式会社 技術部 目次 ● ● ● ● Ultra Monkey概要 LVSのチューニング 新機能:TCPフェイルオーバー 新機能:Active-Active構成 Ultra Monkeyとは ● ● ● http://www.ultramonkey.org/ 高信頼なロードバランサ構築のためのソリューション 以下のソフトウェアから構成 – – – heartbeat LVS ldirectord ● 個別のソフトウェアを統合されたソリューションとしてパ ッケージング heartbeat ● High-Availability Linuxプロジェクトが開発 http://www.linux-ha
OpenStackは、IaaSを構築するためのクラウド基盤ソフトウェアで、OpenStackプロジェクトによって提供されています。 2012年4月5日にリリースされた「OpenStack 2012.1」(コード名:Essex)は、機能・用途別に大きく以下の5つのコンポーネントから構成されています。 VA Linuxは、OpenStackの開発プロジェクトのコントリビューターとして、OpenStackそのものの開発に携わっており、ネットワーク処理を自動運用化するための機能開発プロジェクトである「Quantum」に提供したコード数は世界第6位となりました。 Quantumは、次期バージョンFolsomで正式にリリースされる予定です。また、技術者カンファレンスでの技術発表など、積極的にコミュニティに参画しています。 VA Linuxは、OpenStackを利用したクラウド基盤の構築や、OpenS
「割り込み処理」とは、読んで字のごとく、通常の流れでプログラムを実行している所へ割り込んで別のプログラムを実行させることです。通常は、周辺デバイスなどからのイベント通知に使われるハードウェア割り込みを指しますので、本稿でも以下その意味で使います。 Linuxに限らず、現在一般的なOSでは、ディスクやマウスなどのデバイス入出力の他、タスクの切り替えや定時処理などさまざまな場面で割り込み機能を駆使して作られています。 ところで、現在一般的なPC/PCサーバは、IBM PCやIBM PC/AT以来約30年間、互換性を保ちながら発展してきたものであり、こと割り込みまわりに関しては、たいへんに複雑です。これを制御するLinuxも、この複雑さに対応するために、複雑な作りになっています。 本稿では、この複雑なLinuxの割り込み処理の低レイヤ (もっともハードウェアに近い部分) について解説していきます
PCI (Peripheral Component Interconnect) は、PCのプロセッサと周辺機器との間の通信を行うためのバスアーキテクチャの一つです。 下図は、少し古めのノートパソコンに内蔵されているPCIデバイスの論理的な接続を示したものです。図にありますように、1つのシステムには複数のPCIバスが、PCI-PCIブリッジを介して接続できます。 1つのPCIバスには、複数のデバイスが接続でき、また1つのデバイスには複数の「機能」を備えることができます。かつてノートパソコンで主流であったCardBusデバイスも、PCI-CardBusブリッジの先の一種のPCIデバイスとして見える形です。 PCIバスにおいては、1つのデバイスにはINT#A, INT#B, INT#C, INT#Dの4本のI/O割り込み線が存在します。x86アーキテクチャでは、これらは (共有の上) I/O A
全ての技術情報 VA Linuxの"技術力"の一部をご紹介します。 独自の研究や開発、技術カンファレンスで発表した技術資料などを公開しています。 OSS キーワードで絞り込む 深層学習 ネットワーク プロトコル Linux オペレーティングシステム コンテナ関連 構成管理 ストレージ 仮想化 クラウド 負荷分散 プログラミング言語 プラットフォーム フレームワーク 深層学習すべて Isaac Gym(22000件) ネットワークすべて SmartNIC(11000件) RDMA(22000件) Ryu(10100件) OpenFlow(21100件) その他(20020件) プロトコルすべて NFS(51301件) OpenLDAP(77000件) SNMP(11000件) OAuth(11000件) その他(00000件) Linuxすべて DPDK(11000件) eBPF(22000
アプリケーションを独自MIBで監視させたいと思いながらも、「SNMPエージェントを作るのは少し難しい」と考えている方は、少なくないと思われます。日本語で解説しているWebサイト等も多くはありませんし。 そこで、本稿では、NET-SNMPをベースとしたSNMPサブエージェントの作成概要を紹介していきたいと思います。 NET-SNMPを使って独自MIBを実装する方式には、チュートリアル(※1)を見る限りは何種類かあるようですが、本稿では、NET-SNMPのエージェントsnmpd(マスタエージェント)にAgentX(※2)接続するサブエージェントという形で独自MIBを実装する例を中心に解説します。 本稿で作成するSNMPサブエージェントは【図1-1 イメージ】のように動作します。 SNMPサブエージェントがアプリケーションと情報を共有することで独自MIBを形成するようにしています。安直に共有メモ
「LVS」は、2つのモジュールと1つのコマンド群から構成されています。 ip_vs カーネルモジュール スケジューラカーネルモジュール ipvsadmコマンド 提供されるサービスのポート番号宛のパケットを検出し、それと対応する実サーバに対して、パケットの転送処理を行います。TCPコネクションを、あらためて開設する際のパケット(実サーバとの対応づけがされていないパケットを指す)や、UDPパケットの場合には、転送先の実サーバについてどれにすべきか、スケジュールカーネルモジュールに問い合わせを行ってから処理をします。 パケット転送方法には、以下のような種類があります。 LVS/NAT NATにより宛先IPアドレスを実サーバアドレスに変換して転送する ロードバランサ宛に到着したパケットは、宛先IPアドレスを実サーバのものに変換することで実サーバに転送します。実サーバからクライアントへの応答パケット
本書は、Linux KVMのshadow pagingの実装について解説します。読者の前提条件として、仮想化及びx86アーキテクチャにおけるアドレス変換機構(MMU)に関する基礎知識を有している方を対象としておりますので、あらかじめご了承ください。 KVMは米国Qumranet社により開発されている仮想マシンで、完全仮想化をサポートします。当初は仮想化拡張機能(Intel VT-x、 AMD SVM)をもつx86アーキテクチャを対象に開発されてきましたが、現在ではその他のCPUアーキテクチャにも移植されています。本書内では特に記載がある部分を除き、x86アーキテクチャのみを対象といたします。 実装の特徴としては次のようなものが挙げられます。 CPUの仮想化機能を利用しています。 Linuxデバイスドライバとユーザ空間で実行されるプロセスのペアで実装されており、ユーザ空間ではデバイスエミュレ
全ての技術情報 VA Linuxの"技術力"の一部をご紹介します。 独自の研究や開発、技術カンファレンスで発表した技術資料などを公開しています。 OSS キーワードで絞り込む 深層学習 ネットワーク プロトコル Linux オペレーティングシステム コンテナ関連 構成管理 ストレージ 仮想化 クラウド 負荷分散 プログラミング言語 プラットフォーム フレームワーク 深層学習すべて Isaac Gym(22000件) ネットワークすべて SmartNIC(11000件) RDMA(22000件) Ryu(10100件) OpenFlow(21100件) その他(20020件) プロトコルすべて NFS(51301件) OpenLDAP(77000件) SNMP(11000件) OAuth(11000件) その他(00000件) Linuxすべて 新Linuxカーネル解読室(77000件) D
hping hping(現在はhping3)はpingライクなパケット生成ツールです。ファイアウォールの動作検証等が一般的な用途になるでしょう。 本編では、ファイアウォールのフィルタリングルールを検証するためのhpingの使用法を解説します。 ※hping3はhttp://gd.tuwien.ac.at/www.hping.org/index.htmlから取得できます。
OSS キーワードで絞り込む 深層学習 ネットワーク プロトコル Linux オペレーティングシステム コンテナ関連 構成管理 ストレージ 仮想化 クラウド 負荷分散 プログラミング言語 プラットフォーム フレームワーク 深層学習すべて Isaac Gym(22000件) ネットワークすべて SmartNIC(11000件) RDMA(22000件) Ryu(10100件) OpenFlow(21100件) その他(20020件) プロトコルすべて NFS(51301件) OpenLDAP(77000件) SNMP(11000件) OAuth(11000件) その他(00000件) Linuxすべて 新Linuxカーネル解読室(77000件) DPDK(11000件) eBPF(22000件) カーネルタイマー(44000件) 割り込み処理(55000件) dm-ioband(31200件
Swift は、任意のデータをオブジェクト (object) という形式で格納する機能を提供します。利用者は、ReST インターフェイスを通して Swift システムに要求を送り、オブジェクトのアップロードやダウンロードを行います。 Swift の利用にあたっては、アカウント (account) とユーザ (user) の 両方を登録する必要があります。 Swift は、アカウント毎に独立したストレージ領域を用意します。それぞれのストレージ領域には、ユニークな名前 (ストレージURLと呼ぶ) が割り当てられ、以後ストレージアクセス時の識別子として利用されます。 ストレージ領域へのアクセスには、ユーザ登録が必要となります。 それぞれのアカウントは、その中に複数のユーザを持つことができ、また、ユーザには admin 権限を与えることも可能です。admin 権限を与えられたユーザは、そのアカウン
このLVSクラスタでは、NAT(ネットワークアドレス変換)による転送の仕組みを利用しています。 VIPに対する接続は、まずディレクターが受信したうえで、接続先としてスケジューリングした実サーバに転送します。 その際、送信先アドレスを、VIPから適切なRIPに変換します。実サーバからの返信パケットもディレクターを経由し、その際に送信元アドレスをRIPからVIPに変換します。 ディレクター ディレクターの設定にはipvsadmを使用できます。 【例】まず仮想サービスを10.0.0.1のポート53で作成し、次に3台の実サーバを10.0.1.2~4で作成しています。実サーバもそれぞれポート53を使用します。 # ipvsadm -A -t 10.0.0.1:53 # ipvsadm -a -t 10.0.0.1:53 -r 10.0.1.2:53 -m # ipvsadm -a -t 10.0.0
OpenLDAPは、OpenLDAP Foundationで提供されているLDAP (Lightweight Directory Access Protocol)のオープンソース実装です。 OpenLDAPは、LDAPサーバとして稼動するデーモンプロセスモジュールと、LDAPクライアントの機能をプログラミング言語から利用するためのライブラリモジュール、ldapsearch, ldapadd等のLDAPクライアントモジュールで構成されます。 本編では、システム全体から見たディレクトリサービスの位置付けと用途およびLDAP操作方法の一例、今後の開発動向について、調査報告書から一部抜粋してご紹介します。 ある1つのキーを使用して、それに関連した情報を調べられるサービスを指します。 その代表的な例が、電話の番号案内 (Telephone Directory Service) であり、名称 (氏名・
Linux プログラミング言語 malloc(3)のメモリ管理構造 2007/11/30 技術本部 クラウド基盤エキスパート 角馬 文彦 malloc()といえばC言語ではお馴染みのライブラリで、最も良く使用されるライブラリの一つです。しかしその分だけ何らかの不具合を経験した人も多いのではないでしょうか。本書ではmalloc()、free()で確保、解放されるメモリリソースが内部的にどのように管理されているかを説明していきます。mallocライブラリの仕様を理解する事で、ライブラリ使用時に何らかの不具合が発生した際の手助けになればと思います。 ここではLinuxディストリビューションで標準的に使用されているglibcのmallocライブラリを扱います。今回の調査では次の環境を使用しています。 ディストリビューション :Debian sarge パッケージバージョン :glibc-2.3.
次のページ
このページを最初にブックマークしてみませんか?
『VA LINUX SYSTEMS JAPAN VAリナックス』の新着エントリーを見る
j次のブックマーク
k前のブックマーク
lあとで読む
eコメント一覧を開く
oページを開く