18下期 Linux基礎勉強会レポート Vol.4

benkyokai

benkyokai


1.今回のテーマと内容

今回のテーマは、「サーバーとは何か?」「サーバーに求められるもの」「高可用性技術」「サイジングの基礎」です。このように書くと、「えっ? Linux基礎勉強会なのに?」と思われる方もいると思います。しかし、「サーバーとはどういうものか? どうあるべきか?」。普段から「サーバー」に触れており、かつ、聞き慣れてはいるものの、いざそんな問いかけをしてみると、殆どの受講生は「えっ・・?」と首を傾げ、戸惑いの表情を浮かべておりました。今更な内容かもしれませんが、「Linuxを学ぶ上でサーバーとはどういうものか? どうあるべきか? を知ることは非常に大切です」。そんな講師のコメントに「よしっ!一から頑張ってみよう!」。そんな受講生の決意を遠くから受け止める担当講師。

実はこれまでのBOLD技術勉強会は「ハンズオン」「講義」問わずすべて「集合研修スタイル」で開催をしておりました。しかし昨今のコロナ流行の影響により、後期からはzoomによる「リモート講義形式」での開催となりました。今まで経験したことのない形式での勉強会開催となりましたが、そんなことで担当講師の心が折れることなど微塵もありません! 勉強会開催に先立ち受講生と調整を行い、講義前に「音声はしっかり聴きとれるか?」「講義用のテキストは問題なく閲覧出来るか?」を一人一人とやり取りしながら確認しておりました。「zoomは使うの初めて!」という声が受講生からも聴かれましたが、事前確認が出来たことにより受講生不安も解消され一安心!画面越しではありますが受講生の安堵する表情、あるいは、コメントに担当講師もホッとした表情を浮かべるのでした。 

担当講師との付き合いも長い筆者ですが、本当に「心憎いばかりの配慮」だと感じさせられます。きっとこれならば、受講生の期待を裏切ることなく無事に後期の講座もやり切ってくれることでしょう。担当講師も「リモートであろうが、ただ講義を聴くだけではなく、受講生を指名しながら学習を進めるやり方は変えることなく実践する!」とのこと。聊かも情熱が衰えることはありません。本当に相も変わらず「熱い」ですね! 

さぁこれから後期3回シリーズがスタートします! 担当講師と受講生の皆さん。お互いに声を掛け合いしっかり頑張りましょう!では、今回のコンテンツをご紹介します。皆さん「Linuxを学ぶ上で、サーバーの知識の土台は欠かすことができません!」。しっかりと学びましょう。

1.1.サーバーとは何か?

「『サーバー』とは、クライアントからの要求に対してサービスを提供するコンピューター。『クライアント』とは、サーバーに対してサービスの依頼を行いその提供を受けるコンピューターのこと。つまり、サーバーからサービスを受ける」から講義は始まりました。
この説明に対して受講生は皆「なんだ!そんなことは当たり前じゃないか」と言わんがばかりで、講師からリモート越しに「皆さん、大丈夫ですか?」と問いかけておりましたが、皆即座に「大丈夫です!」と返答するのでした。
そのやり取りの中で講師は立て続けにこのように切り出します。「では皆さんの日常でどのような使われ方をしてますか?」。その問いを発した瞬間、言葉に詰まる受講生・・。そこで「ネットワークの構成」と絡めながら以下のように説明を続けます。

①ピア・トゥ・ピア型ネットワーク (テキストより抜粋)

②クライアント・サーバー型ネットワーク (テキストより抜粋)

サーバーに携わるうえで、「どのような構成になっていて、どのような使われ方をしているのか? どのような役割を担っているのか? サーバーに関わるうえで大切だから、今回の講座を通じてしっかり学びましょう!」。そのように担当講師は熱く語りながら、「ファイル共有、共有プリンタ」等、日常業務での利用ケースをサンプルにして、サーバーとクライアントの役割について説明を進めました。受講生も「あっ! そういうことなのか!」という反応をしておりました。 

1.2.サーバーに求められるもの

続けて担当講師は次のような問いかけを受講生にします。「サーバーとは何か?はわかったと思います。ではサーバーに求められるものとは何でしょう? サーバーとはどうあるべきでしょうか?」。担当講師から指名された受講生からは、「24時間265日動くことですか?」あるいは「止まらずに動き続けることですかね・・」「ずっと動いている・・」等の答えが返ってきます。
その答えを聴きながら、担当講師は微笑みながら、「そう、その通り! 24時間365日サービスを提供し続けられることですね。」 と受講生に説明をします。皆さん考え方はしっかりと理解できてますね! そう。それでいいんですよ!
「24時間365日サービスを提供し続けることを目指すために、エンジニアとして知っておくべきサーバー稼働に関する指標」というのがあるのですが、いったいどのようなものでしょうか?」。これをこのセクションで学びましょう。

最初に講師は「サーバーの稼働に関する指標値」として、以下の各項目について、例を交えながら説明を始めます。
①平均故障間隔(MTBF)
②平均故障時間(MTTF)
③平均修理時間(MTTR)
④稼働率(%)

①平均故障間隔(MTBF)
故障と故障の間の時間 = 稼働している時間

稼働している時間を合計して割り算すると平均故障間隔を出すことが出来る
(600 + 200 + 400) ÷ 3 = 400
この場合 400時間が、平均故障間隔となる。値が大きければ大きいほど「故障しにくく信頼性が高い」

②平均故障時間(MTTF)
機器の寿命がどれくらいかを示す指標

一回故障すると、それで使えなくなるという場合に使われる
例えば、ハードディスクやSSDなどのストレージの交換期間の目安となる
「MTTFが5年」とは「平均5年の稼働時間で故障する」という意味

③平均修理時間(MTTR)
故障から復旧(修理完了)までの時間

復旧中の時間を合計して割り算をすると平均修理時間を割り出すことができる
(1h + 3h + 2h) ÷3 = 2h
この場合、2時間が平均修理時間となる。値が小さければ小さいほど「復旧にかかる時間は短い」

④稼働率(%)
全運転時間に対する稼働時間の割合

稼働率は、MTBF÷(MTBF + MTTR)×100% で算出する事ができる
MTBF = (600 + 200 + 400)÷ 3 = 400
MTTR = (1 + 3 + 2)÷ 3 = 2
400 ÷(400 + 2)× 100 = 約99.5%
今回の例では、本サーバーの稼働率は約99.5%となる。値が大きければ大きいほど「稼働率は高い」

言葉としては、見たり、聴いたりしたことはあっても「どういう時に使うか?」を知らない受講生が殆どで、「へー、そうなんですね」という反応が返ってきます。続けざまに担当講師はここまでで説明をしたサーバーの指標値を使い、「コンピューターシステムに求められるものを評価する指標=RASIS(ラシス・レイシス)」についての説明へと講義を進めていきます。

①Reliability(信頼性)
故障しにくい事。一般的に「平均故障間隔(MTBF)」で評価。値が大きいほど信頼性高
②Availability(可用性)
高い稼働率を維持できる事。一般的に「稼働率(%)」で評価。値が大きいほど可用性高(高可用性)
③Serviceability(保守性)
障害復旧やメンテナンスのしやすさを。一般的に「平均修理時間(MTTR)」で評価。値が小さいほど保守性高
④Integrity(保全性)
データに矛盾がなく一貫性を保っている事
⑤Security(安全性)
機密性が高く、不正アクセスがされにくい事

特に最初の3つ(Reliability、Availability、Serviceability = RAS)が重視されること。さらに「Serviceability(保守性)」を深く掘り下げて、「RTO(目標復旧時間)、RPO(目標復旧時点)、RLO(目標復旧レベル)、MDPD(最大許容停止時間)」について解説を進めました。 横文字の用語が数多く登場し、「説明を聞き漏らすまい!」と受講生達は必死にノートを取っておりました。もちろん受講生には常に「ノート取れてますか?」「聴き洩らしたところないですか?」と、受講生全員に対して声を掛けることを怠らない担当講師。気配りもばっちりですね!受講生も安心した様子で「大丈夫です!」と返答を返しておりました。

ある受講生からは「これらの用語は日々の業務、あるいは基本情報などの資格取得に向けての勉強で何度か見たことあった。でも細かい意味は今まで知らなかった。そういうことだったのですね!」という新たな発見をした喜びのコメントもあり、担当講師もうれしそうな表情を浮かべるのでした。

1.3.高可用性を実現する技術

まだまだ講義は続きます! RASISの説明の中で登場した「高可用性」を実現するための技術の説明に入ります。高可用性を学ぶ上で欠かせないうえで必要な考え方に「冗長化」があります。これらに関わる以下の各項目について、例を交えながら説明を始めます。

最初に「冗長化とは何か?」を数名の受講生を指名して答えてもらったところ、言葉自体は聴いたことがあったようで、「何かあったときの備え」「サーバーが壊れたときに備えて予備機を用意する」「NWなどで障害が起きても、別の回線に切り替える」等の答えが返ってきました。そうですね。その通りです!ただし、「具体的に冗長化をどのように実現するか?」についてはよくわかっていない受講生が殆どでした。

担当講師もこの項目が、第1回目講義の「肝」であることは百戦錬磨の経験からも十分理解しており、説明にも更に熱が入っておりました!受講生も説明に対してしっかり耳を傾け、講義内容を聞き漏らすまいとノートを必死に取っておりました。もちろんノートを取り終えていない受講生を置き去りにするはずもありません!受講生全員に対して声を掛けながら、ノートを取り終えるまでちゃんと待っております。「慌てなくても大丈夫ですよ。書き終わるまで待ってますからね」。このように声を掛けておりました。厳しいだけではないですね。担当講師の優しさも垣間見えるコメントで、筆者も微笑ましく感じながらレポートを書き進めるのでした。
①冗長化とは?
②冗長化の方法
③ハードウェアを複数で構成させる技術
④複数のサーバー(機器)で構成させる技術
⑤アクティブ⇔スタンバイの冗長化方式
⑥アクティブ⇔アクティブの冗長化方式

①冗長化とは?
システムに何らかの障害が発生した場合に備えて、 障害発生後でもシステム全体の機能を維持し続けられるように、予備機を平常時からバックアップ機として配置し運用しておくこと

②冗長化の方法
主に以下の方式で冗長化を実現する
1) サーバー内のHWを複数で構成 →ハードディスクのRAID、NICのチーミング
2) 複数のサーバー(機器)で構成 →稼働系機器と待機系機器で運用
3) システムを遠隔地に構築 →災害対策環境、遠隔地バックアップなど

③ハードウェアを複数で構成させる技術
本講座ではRAIDの技術について重点的に解説。RAIDには0から6までの7種類
その中でよく利用されるものとして「RAID0・1・5・6」がある
RAIDコントローラーやソフトウェアによって使用できるRAIDのレベルが規定されるケースが多い

④複数のサーバー(機器)で構成させる技術
障害発生時に本番システムから予備システムへ切り替える方式。代表的なものとして以下がある
1) アクティブ ⇔ スタンバイの構成
・ ホットスタンバイ
予備サーバーも起動状態にして、本番サーバーと同じサービスやアプリケーションを起動し、同時に処理を実行しながらデータをリアルタイムで同期し続ける方式

・ コールドスタンバイ
予備サーバーを、通常は使用しない状態にしておく方式
設計や運用により、 通常時は電源停止など完全に停止させている場合もある

・ ウォームスタンバイ
予備サーバーは、機器本体やOSなどは起動するが本番系と処理やデータの同期などは行わず、切り離された状態で待機させる方式

・ サーバクラスタリング 
冗長化のため、複数サーバーを用意するが、クライアント側からは1台の仮想サーバーとして
認識させてアクセスさせる。障害が発生した場合も、いずれかのサーバーが稼働していれば、クライアントにサービスを提供できる高可用性のための技術

2) アクティブ ⇔ アクティブの構成
・ 負荷分散方式
冗長化のため、複数のサーバーを用意するが、クライアント側からは1台の仮想サーバーとして認識させて、アクセスさせる。
障害が発生した場合も、いずれかのサーバーが稼働していれば、クライアントにサービスが提供できる高可用性のための技術。
クラスタリングとの違いは、接続サーバーが共有ディスクを持たない「アクティブ⇔アクティブ」の構成になる点

基礎講座とは言え難しい内容。高可用性に関する各々の技術について「特徴・メリット・使用ケース等」重要ポイントを「何とか持ち返ってもらいたい!」という想いからか、一つ一つの説明で図を交えながら、嫌が上にも担当講師の声はトーンが上がります。リモート越しながらも「担当講師側からの受講生を指名する回数はさらに増え、漏れなく全受講生に対し指名」をし、そして指名された受講生もノートを見ながら一生懸命に担当講師の問いかけに答えます。対面だとかリモート越しとかそんなことは関係ないですね!担当講師と受講生全員の一体感溢れる講義に筆者も心打たれる想いとなるのでした!

1.4.用途によるサイジング

そして第1回目締め括りとして、「サーバーのサイジング」についての説明へ入ります。サーバーは様々なハードウェアから構成されますが、特にその中でも重要な「CPU・HDD・メモリー」について取り上げます。サーバーの設計をする上で、「どのような考え方でサイズを見積もるか?」という考え方は難しくすぐに身につくものでもありません。担当講師も長年の経験で試行錯誤しながら苦労をした記憶があります。もちろんその前に「CPU・HDD・メモリーとは何か?」から説明をし、そのあとから本題のサイジングに入ります。さぁ、受講生の皆さん。これが本日の最後です。あともうちょい頑張りましょう!

①CPU
Central Processing Unitの略。別名:プロセッサー。 人間の体で例えると頭脳にあたる。
パソコンには必ず搭載されている部品で、マウス、キーボード、ハードディスク、メモリー、周辺機器などからデータを受け取り、 コンピューターでは「制御・演算」を担当する。
②HDD
コンピューターシステムにおける記憶装置の一種で、磁気記憶方式によってデータを読み書きする装置のこと。
③メモリー
コンピューターにおいてプログラムやデータを記憶する装置のこと。

担当講師はここで1つ質問を投げかけます。「HDDもメモリーも記憶装置ですよね?でも何か違いがあるはずですね。何だと思いますか?」。質問内容に「すぐにピン!」と来た受講生も多く、担当講師からの指名に対して「HDDは保存すればデータは残るけど、メモリーだとデータは消えてしまう」「メモリーだと電源切ったらデータなくなってしまって最初から作り直し・・」という内容の回答を受講生も返しておりました。担当講師も満足気味に「その通り! サーバーやPC上での作業データを一時的に保存するのがメモリー。だから電源が落ちたりしたら消えてしまう。それを対して電源を止めた後でもデータ残る。これがHDD。皆さんもOffice製品を使っており上書き保存をすると思いますが、あれもデータをHDDに保存するんです。」という日常の作業を例にする講師の説明に、受講生も納得したと一様にコメントをしておりました。

そして最後にそれぞれのハードウェアのサイジングの考え方についてサンプルを交えて説明を行い、第1回目の勉強会は終了。今回の講義だけでたくさんの内容を学び、それに加えて慣れない「リモート講義形式」での受講ということも重なり、受講生も大変だったと思いますが、そんな条件にもかかわらず2時間の講義に対してとても前向きに参加をしており、更に講義終了後も担当講師に対してリモート越しから個別に質問をする受講生も数多くいるなど、講義に対する受講生の熱意は本当に素晴らしかったですね。担当講師自身も初の「リモート開催」ということで開始前は緊張していた様子がうかがえましたが、終了後は安堵の表情を浮かべておりました。
ところで皆さん。以下の答えは何になるでしょうか? それはここでは割愛します。講座に参加してご自身で答えを出せるようになってくださいね。Linux基礎技術勉強会への参加を心よりお待ちしております!

①CPUサイジング

②HDDサイジング

③メモリーサイジング


2.次回予告

第2回Linux基礎勉強会は「Linuxの機能と役割」「Linuxの使い方(コマンド基礎操作/ログの見方等)」について重点的に講義します。いわば本勉強会の講座の中でも、特に「要」となる講義になります。
Linuxに関わる立場として欠かすことのできない基礎知識です。しっかりと学びましょう!


3.受講者の声と評価

今回の参加人数9名、辛口の受講者アンケートでは、満足度の平均が「95.7点」でした!
「ずっとやりたかった勉強に触れられた上に、分かりやすい解説と進行で大満足だった。」
「サーバーの知識について、基礎から知ることが出来たのが良かった。知らなかった言葉もあったので、より深く勉強していく意欲にもつながった。」
「サーバーの基礎知識、高可用性を実現するための技術について、サイジングについてなどの知識を得ることが出来た」
「現場はインフラ業務ではないが、お客様からの問い合わせでサーバーの状態を確認することがあるため、役立てていけたらと思う。また、情報技術者試験でも活かしたい。」
など、多くの評価を頂きました。

また、初のリモート講義形式の勉強会に対しても以下のようなコメントも頂きました。
「zoom開催で、画面共有でパワーポイントがしっかり見ることができよかった。内容も図や表、写真を用いて説明してもらえてとても分かりやすかった。」
「講師と受講者とのコミュニケーションがあることで、より一層前のめりに参加できた。」
「スライドが見やすく、音声にも問題がなかったので大変満足。」
「初めての勉強会のため対面での勉強会と比較ができないが、意外とスライド表示や話しのやり取りも問題なく、快適に感じた。」
「所々、自宅の回線が不安定な時がありましたが挙手やチャットなどオンラインツールならではの機能があり、よかった。」
「画面共有でパワーポイントがしっかり見ることができよかった。勉強会が始まる前に早めにミーティングを開始してもらえ、接続確認を自由にすることができたので、開始がとてもスムーズだった。」

もちろん通常の「集合研修スタイル」のようなわけにはいかないまでも、リモートという制約がありながらもそれを乗り越えて学ぼうとする想いが伝わってくる内容であり、担当講師と受講生の一体感が伝わります。

まだしばらくは「リモート講義形式」での勉強会開催は続きますが、これらのコメントを読み担当講師も「更に充実した勉強会開催を!」決意を新たにしておりました。


4.今回の勉強会で伝えたい事

今回の勉強会での学びを通じて、「とにもかくにも基礎/基本を大切に」して頂きたい!」ということを担当講師は熱く語っておりました。エンジニアとして成長をするためにも「基礎を地道に」学ぶことは大切ですし、担当講師の経験則からも「基礎を大事にしたからこそ今がある」と語っております。

また、今回は「リモート開催」となり確かにベストとは言わないまでも「出来ない理由」を並べるのではなく、「出来るためにはどうすればよいのか?」。そのことを考える良いきっかけになったと担当講師は語っております。受講生の方にも「日頃の業務や自己研鑽」においても「出来ないと諦めるのではなく、何とかやれる方法を考えること。そんな姿勢に結果は必ずついてくるから、諦めることなく頑張って欲しいと伝えて頂きたい!」。このように想いを筆者に語ってくれました。経験に裏打ちされた熱いコメントですね。

また、こうした地道な努力は少しずつではありますが、必ず身につきますし、いつか「努力はいつか花が咲き、飛躍的な成長」に繋がります!また「良く分からない…」などと諦めず、くらいついてほしい。わからないことがあったら「いつでも遠慮なく聴いてほしい」。そのようにも語っておりました。受講生の皆さん。本レポートを読まれた方。経験豊富な講師を上手に活用し、基礎を確実に身に付けていきましょう!

私たちは、全てのエンジニアに市場価値を高め自身の望む理想のキャリアを歩んでいただきたいと考えています。もし、今あなたが転職を検討しているのであればこちらの記事をご一読ください。理想のキャリアを実現するためのヒントが見つかるはずです。

『技術力』と『人間力』を高め市場価値の高いエンジニアを目指しませんか?

私たちは「技術力」だけでなく「人間力」の向上をもって遙かに高い水準の成果を出し、関わる全ての人々に感動を与え続ける集団でありたいと考えています。

高い水準で仕事を進めていただくためにも、弊社では次のような環境を用意しています。

  • 定年までIT業界で働くためのスキル(技術力、人間力)が身につく支援
  • 「給与が上がらない」を解消する6ヶ月に1度の明確な人事評価制度
  • 平均残業時間17時間!毎週の稼動確認を徹底しているから実現できる働きやすい環境

現在、株式会社ボールドでは「キャリア採用」のエントリーを受付中です。

まずは以下のボタンより弊社の紹介をご覧いただき、あなたの望むキャリアビジョンをエントリーフォームより詳しくお聞かせください。

公式アカウントLINE限定!ボールドの内定確率が分かる無料診断実施中
公式アカウントLINE限定!
ボールドの内定確率が分かる無料診断実施中