2018年5月16日水曜日

システムエンジニア的な話


 光学など担当の岩室です。

 今回はちょっと難しい話です。
世の中で良く「システムエンジニア」という職業名を聞くようになりましたが、これってコンピュータ関係の仕事だという事はわかるけど、実際、何をやっているのかよく分からないですよね。「プログラマ」はプログラムを開発する人ですが、「システムエンジニア」はプログラムを組み合わせて必要なシステム全体を作る人です。私は宇宙物理教室のシステムエンジニア的な仕事も行なっています。

皆さん、メールを送ったりブログやインスタをアップしたり色々ネット内での活動をされているかと思いますが、それぞれ、どんな仕組みになっているかご存知でしょうか。メールであれば、メールの送受信をしてくれる「メールサーバー」というのがどこかにあって、それに接続することでユーザーはメールのやり取りができます。ブログやインスタであれば、ネット上に情報を置いて公開してくれる「ウェブサーバー」というものがあって、そこに情報を送ることで掲載してくれます。どれも、大きなネット関係の会社が無料でサービスを提供して運用されていますが、昔はこれらは使いたい人が独自にサーバーを立ちあげて運用していました。宇宙物理学教室は非常に歴史が古く、1995年頃からそのようなサーバーを独自に立ちあげて運用していたようです。現在もその流れを受けて、小規模ながら各種サーバーを自前で立ちあげて運用しています。これは、非常に労力がかかりますが、ユーザーのやりたいことを自由に行なうことができ、また必要なときに自由に改変できますので、短期間だけ設定を変更するなど柔軟な運用が可能となります。

しかし、このサーバーっていうものはどうやって準備するのでしょう?

実は、サーバーを作るのに必要なソフトは全て無料で入手できます。宇宙物理教室では Debian という種類の linux (リナックスと読みます)を使っていますが、Windows のように単一の会社が扱う商品ではなく、linux は世界中のボランティアによって日々開発されているコンピュータを動かすベースとなるソフトウェア(OS と言います)です。Debian はそれをベースにこれまた多くのボランティアによって「パッケージ」と呼ばれる様々な機能を持ったソフトを部品として準備し、linux 上での多種多様なソフトウェアの集合体として開発されたもので、多くのパッケージの中から必要なものだけを組み合わせて目的にあった特殊なコンピュータを作り上げることができます。Windows でも、どんどんソフトを追加インストールして、使い方を増やせますよね。それが、もうちょっと細かく難しくなった感じです。こういう複雑なものは「スクラップ&ビルド」が必要なので、Debian は2年おきに新たなバージョンが公開されており、セキュリティ対策のため、サーバー PC も数年経つと新しいバージョンのもので作りなおす必要があります(古いものはアップデートされなくなるので、攻撃を受けやすくなります)

最近、宇宙物理教室の全サーバーの総とっかえ作業を行いました。まずは、できるだけ性能の高いコンピュータの部品を揃え、自前で組み立てる所から始まります。RAID と呼ばれる、ハードディスクを2台1組で使うボードを追加する事で、片方のディスクが壊れても問題なく復活できるようにします。部品単位で集めて組み立てるのは、こういう特殊な用途のものを完成品で購入すると非常に割高になるからです。量産品は安いですが、特殊なものは高いですよね。次に、この PC Debian linux をインストールします。その後、この PC に内部でソフト的な PC (仮想PC と言います) を動かすためのパッケージを入れます。その中で数台の仮想 PC を作り、それぞれに linux をインストールして(実際はある程度共通で使うパッケージまでインストールした仮想 PC をコピーして増やします)、そこにメールサーバーやウェブサーバーなどに必要なパッケージを入れることで、メールサーバーやウェブサーバーといった異なる機能を持つ仮想PC ができます(他にも、ユーザが外部から入る際のゲートとなる機能をもつサーバーや、ユーザのログイン名やパスワードの情報を管理するサーバーが必要になります)

 こうしてサーバーが出来上がります。見た目は1台の PC ですが中には数台の仮想 PC が入っていて、1台で数台分の役割をこなします。できるだけ性能のいい部品を揃えるのはそのためです。1台目ができたら、それで新しいサーバーの運用を開始し、これまで運用してきたサーバーの中身を新しい OS で同様に作り変えます(数年前の最先端 PC ですが、まだ何とか使えるので)。この作業は、1台目の中身をコピーするだけなので、大した作業ではありません。このような感じで、同じソフト構成にした PC を3台準備し(仮想 PC の台数では10台以上になります)、どれが壊れてもすぐに代わりの PC が使える体制で運用しています(下写真)最近は、昔に比べてセキュリティ対策がどんどん進化し、日々、より防御力の高いソフトが開発されています。そのため、パッケージを入れる際に昔の知識は通用しない部分が多々あり、その度に最近の情勢を勉強しないといけません。システムエンジニアはそういう意味で日々の努力が必要で、頭の固いオジサンには結構厳しい仕事です。




 ところで、岡山天文台をスタートさせるにあたり、そこでもサーバーが必要になります。最近、宇宙物理教室でサーバーを入れ替えたばかりなので、ついでに岡山天文台のサーバーもお古のサーバー PC を使って9割方完成させて昨日持って行ったのですが、何と輸送の途中で RAID を管理するボードが壊れたか、4台あるハードディスクの3台が同時に壊れたかと思われる事象が発生し、岡山天文台用に仮想 PC 4台を作りこんだ私の一週間は水の泡と消えつつあります(まだ復活の希望は少しありますが)。これまで数年間、宇宙物理教室のサーバーとして動かしてきたお古のサーバーなので、長距離の移動は酷だったのでしょうか。こういうサーバークラスの PC を輸送するときは、ハードディスクのヘッドの振れる方向まで意識して載せ、特に縦Gには注意して輸送しないといけないという事、また輸送後は PC の中身を開けてコネクタやボードのささり具合の目視点検が必要であることを学習しました...

(この PC はこの記事を書いた後に無事自己修復できて最重要部分は復活し、一安心でした)


0 件のコメント:

コメントを投稿