ボンブの戯言4回目です。
パソコンが一般的になり、一家に一台あってもおかしくない時代です。それと同時にサーバーという言葉も、一般向けにも当たり前に使われる時代にもなりました。
しかし、サーバーのことを細かく説明してるサイトってないなぁと思ったので、オンプレミス(オンプレ)におけるサーバーが、どういったものなのか戯言を吐いていこうと思います。
オンプレミスについては後述しますが、簡単に言うと自社でサーバー機器を保有するイメージです。今回の戯言では、オンプレミスのサーバーに注視し、クラウドにおけるサーバーについては、さらっと説明していきます。
サーバーって何?
サーバーの語源
サーバーは、英語でServerという綴りになります。語源は、serv(仕える)-er(人)からきています。この時点で、サーバーって何か私たちの役になってくれるものなんだろうなぁと想像できます。
サーバーの定義
サーバーという定義について調べましたが、明確な資料は見つかりませんでした。何か規定のようなものがあるとずっと思っていましたが、資料が見つからなかったのは少々驚きました。
ということで、一般的な定義からサーバーを見ていきます。
こういう時はWikipediaさんが便利ですね。
サーバ または サーバー(英: Server)は、サービスを利用者のリクエストに応じて提供するソフトウェア、あるいはその機能が稼働しているコンピュータのことである。コンピュータ分野のクライアントサーバモデルでは、クライアントからの要求に対して情報や処理結果を提供する機能を果たす側を指す。
Computer Hopeでは、下記のように述べられています。
A server is a software or hardware device that accepts and responds to requests made over a network. The device that makes the request, and receives a response from the server, is called a client.
2つの説明を合わせると「ネットワークを通して、私たち(利用者)がサービスリクエスト(要求)した情報処理結果を返してくれるもの」と解釈できます。
身近なところでは、Webサーバーがイメージしやすいですね。「Webサイトを見たい(要求)に対して、Webサイトを表示(情報処理結果)」してくれています。
身近なサーバーには、以下のようなサーバーがあります。
- データベースサーバー(データを処理してくれる)
- アプリケーションサーバー(アプリケーションを動かす)
- Webサーバー(WebサイトやWebアプリケーションを公開する)
- メールサーバー(メールを送る、受け取る)
- ファイルサーバー(ファイルを共有する)
- プリントサーバー(プリンタを共有する)
- DNSサーバー(Webサイト等URLの名前を教えてくれる)
- DHCPサーバー(ネットワークに必要なIPアドレスを自動設定してくれる)
- NTPサーバー(機械の時間を合わせてくれる)
DNS,DHCP,NTPなどは、家庭にあるインターネットに接続するルータにも備わっている場合が多く、知らず知らずのうちに自分の家にもサーバーがあると言えるでしょう。
ここまで見えるとサーバーという言葉は、固有の何かを指すものではなく「情報処理結果を返す」という役割を表す言葉であることがわかります。もっと言えば、皆さんが使っているパソコンも、「利用者の要求に対して、情報処理結果」を返すことをしていれば、サーバーということになります。
とはいっても、ITエンジニアの業務の中でパソコンのことをサーバーとは言いませんし、サーバーの役割を担う機器はパソコンと異なる部分も多いです。
そんな、サーバーについて詳しく見ていきます。
稼働時間・場所
稼働時間
皆さんがパソコンを使うとき、必要な時に起動して使い終わったらシャットダウンもしくはサスペンドする方が多いと思います。使わないときに動かし続けるのは、電気代の無駄です。
しかし、サーバーと言われる機械は、いつ要求が来てもいいように、24時間365日動き続けることを要求されます。インターネットショッピングをするときに、17:00以降は購入できないってことはありませんよね?私たちは、サーバーが常に動き続けているからこそ、24時間買い物ができますし、メールを送ったり、Webサイトを見たりすることができています。
サーバーと言われる役割の機械には、このような長時間稼働するための仕組みが備わっています。
メンテナス時間
24時間365日といっても、動いているサービスのバージョンアップなどで、より使い勝手を良くしたり、わかっている問題を改善したりします。そのため、メンテナンス時間を設けて、意図的に停止することがあります。
スマートフォンアプリのゲームのメンテナス時間などもこれにあたります。
場所
2021年現在では、サーバーという言葉を使うときに、オンプレミス・クラウドという言葉がセットで使われる頻度が増えてきました。本記事では、オンプレミスに焦点を当てて記載していますが、この2つの言葉の意味も説明しておきます。
オンプレミス
英語では、on-premisesと書きます。on(空間にある)-premises(構内、敷地内)となり、IT業界では、機器を自社内もしくは自社の保有する施設内に機器を配置する意味合いで使います。自社の施設でサーバーのような情報機器を集約した部屋を、「マシンルーム」「機械室」などと呼ぶことが多いのではないでしょうか。
また、保有施設だけでなく、契約を行っているデータセンターなどの施設に機器を配置している場合にもオンプレミスになります。
オンプレ、プレミス、OnPなどの略称で使われることも多いでしょう。
企業が使うサーバーは、自社内に配置することが一般的でしたが、後述するクラウドがIT業界で一般的になってきた2005年前後から、オンプレミスという言葉を使い、サーバーがある場所を明確に区別するようになってきました。
クラウド
英語では、Cloud(雲)と書きます。クラウドコンピューティング、クラウドサービスなど役割の提供形態によって、クラウド〇〇、〇〇クラウドなどと呼ばれることも多いです。
オンプレミスが自社で情報処理を行う機器を保有していたのとは対象に、インターネット上のサービスを利用して、情報処理の役割を提供する形態をクラウドと言います。企業は機械を購入するのではなく、インターネットを経由して情報処理の役割を購入します。
広大なインターネットの世界を、空に浮かぶ雲をイメージしたことからクラウドと呼ばれました。
クラウドの言葉が、国内のIT業界で流行りだしたのは、AWSのサービスが始まった2000年中盤以降ですが、1990年代には、コンパック(現 HPE)が使用していたようです。
アーキテクチャの違い
サーバーは役割によって色々なサーバーがありました。役割以外でもサーバーとして動く機械の違いもあります。
機械の違いをアーキテクチャーの面から見ていきましょう。アーキテクチャーの定義も色々ありますが、ここでは簡単にCPUの違いと考えてください。
本記事では、使われる機会の多いIAサーバーを主軸に記載していますが、IAサーバー以外にもよく見るサーバーを見ておきましょう。
IAサーバ(x86サーバ)
Intel Architectureを略してIAサーバーと呼びます。x86サーバーやPCサーバーなどと呼ばれることがあります。
Intel 8086(x86)およびその後方互換を有するCPUが搭載されたサーバーをIAサーバーと呼びます。AMD製CPUもIntel 8086互換があるため、AMD製CPUが搭載されたサーバーもIAサーバーになります。
MacなどのM1プロセッサは違いますが、皆さんのパソコンのほとんどは、このCPUアーキテクチャのCPUが搭載されています。
IAサーバーは、信頼性などの面から、後述のUNIXサーバーやメインフレームに遅れをとってり、ミッションクリティカルなシステムでは利用頻度が少ない時代もありましたが、ハードウェアやソフトウェアなどの向上と安価に購入できることから、2021年現在は多くのシステムで使われるようになりました。
IAでよく混合してしまうのが、Intelの64bit CPUである、IA-64アーキテクチャCPUです。IA-64アーキテクチャは、Intel 8086の後方互換を切捨てているため、IAサーバーではありません。
64bit CPUでIAサーバーと呼ばれるのは、AMD64命令セット、Intel64命令セットが搭載された機器になります。
UNIXサーバ
UNIXサーバーとは、UNIX系統のOS(商用)を搭載したサーバーになります。CPUちゃうんかい!というツッコミはありますが、現在のところUNIX OSは各ベンダーから提供されておりそれぞれ異なるCPUで稼働しています。
UNIXサーバーの有名どころでは、下記のようなものがあります。
ベンダー名 | サーバー名 | CPU |
IBM | AIX | POWER系 |
HPE | HP-UX | PA-RISC系 |
Oracle(旧 Sun Microsystems) | Solaris | SPARC系 |
CPU以外にも、ベンダーによって搭載されている機能の違いなど特色がありますが、どのUNIXサーバーも信頼性の高いミッションクリティカルなシステムに採用されているサーバーになります。
2000年代後半からは、ミッションクリティカルなシステムにIAサーバーが使われる機会も多くなっていますが、熱狂的な人気があったり、IAサーバーへの乗り換えが難しく使われることも多いでしょう。
メインフレーム
IAサーバーやUNIXサーバーが一般化する以前(1980年ごろ以前)では、情報処理をするコンピュータは、各ベンダーが機械からOS、中で動いているシステムまでを独自開発したものでした。特定の情報処理を行う専用コンピュータ(専用機)から、動作するシステムを入れ替えることにより、様々な処理ができる汎用コンピュータ(汎用機)の過程があり、様々な処理が行える汎用機が主流となりました。
その汎用機の中でも、巨大なシステムで動作させる大型汎用コンピュータのことをメインフレームと呼びます。レガシーシステムとも呼ばれます。
現在、新規システムでメインフレームを導入するケースは、かなり少ない(おそらく無い)と思われますが、高い堅牢性と高い後方互換により、銀行系システムや大企業、国に関する大規模システムでは、まだまだ根強く残っています。
メインフレームは1950年代からありますが、それからの時代の中でもメインフレーム「IBM System/360」は、色々な意味で歴史に名を刻み、後継機のメインフレームたちは現代も高いシェアを誇っています。
下記は、IBM System/360です。
下記は、2019年に発表された後継機のIBMのメインフレーム「IBM z15」です。
その他のサーバー
紹介した以外にも、ARM CPUを搭載したARMサーバーや、IA-64アーキテクチャCPUを搭載したIA64サーバーやスーパーコンピューター(スパコン)など分類される場合もあります。
といっても、スパコンでもIAサーバーを使っている場合もありますし、UNIXサーバーでIA64をサポートしている機種もあるため、厳密に区分けされているわけではありません。
今後は、AppleのM1プロセッサを搭載したM1サーバーなども出てきそうですね。
ベンダーの違い
みなさんが良く触れると思われるIAサーバーに話を戻します。IAサーバーと一括りにしても各ベンダーから販売されています。
国内のシェア
IDCの調査からサーバー市場動向を見たところ、シェアは下記のようになっていました。結構みたことのあるベンダー名が並んでいるのではないでしょうか。下記は、UNIXやメインフレームなども含めた数値でしたのでご参考までに。
https://www.idc.com/getdoc.jsp?containerId=prJPJ47567321
売上額シェア | ベンダー名 |
1 | 富士通 |
2 | NEC |
3 | HEP(Hewlett Packard Enterprise) |
4 | Dell Technologies |
5 | 日立 |
富士通、NEC、日立など国内ベンダーが多いのは、日本製サーバーの信頼性が高いわけではなく、「日本語の資料が豊富」「保守対応や問い合わせ対応が日本語(日本人相手)で行える」「過去から日本ベンダーを入れていた経緯から」などからの理由のためかと思われます。
IAサーバーに焦点を当てると、他のベンダーでは「Lenovo(旧IBM)」「Cisco」「Huawei」「Oracle」などのベンダーも販売しています。
IAサーバーもUNIXサーバーほどではありませんが、ベンダー独自の機能やソフトウェア連携などで特色があります。しかし、機能面で大きな差異はないため、採用可否は、営業努力や価格面で決めることが多いような気がします。
OSの違い
続いてIAサーバーに導入する機会が多いOSについて記載します。昔はどれか1つを扱えれば仕事に困らないレベルでしたが、最近はIAサーバーに携わるなら大体の機能は扱えて当たり前の風潮になってきている気がします。
細かいことがわからなくとも、大まかな違いを知っておくことは必要です。
Windows Server
名前にWindowsとついてるように、マイクロソフトが出しているOSです。皆さんが使っているWindows10などは、クライアント向け(パソコン)になりますが、サーバー向けのOSがWindows Serverになります。
Windows10などとの違いは、サーバー向けの機能が豊富に準備されている点が一番の違いではないでしょうか。
また、価格も大きくことなります。下記は、現在最新のWindows Server2022の価格表です。
https://www.microsoft.com/ja-jp/windows-server/pricing
Windows10は2万円前後ですが、Windows Serverで使う機会の多いと思われるStandard Edisitonでは11万円ほどです。
また、Windows Serverでは、利用者側(パソコンからサーバーへ処理を要求するための)CALライセンスも購入する必要があります。
Linux
次にツイッターの皆さんが大好きそうなLinuxです。Linuxと一口に言ってもかなりの数がありますが、IAサーバーに導入するLinuxとしてサポートされている種類はそんなに多くなりません。「Red Hat Enterprise Linux」「SUSE Linux Enterprise Server」「Canonical Ubuntu」「Oracle Linux」あたりでしょうか。RHELとSUSEは多くのベンダーでサポートされていますが、UbuntuとOracle Linuxは、ベンダーによりマチマチな印象なので確認が必要ですね。
また、Linux=無償と考える人が多いですが、RHELやSUSEなどは保守付きの有償ライセンスを使う機会も非常に多いです。
下記は、Red Hat Enterprise Linuxの価格表です。一番安い1年契約のものでも10万円と非常に高額となっています。
https://sios.jp/products/redhat/rhel/price.html
ハイパーバイザー型OS(vSphere ESXi / Hyper-V / KVM)
IAサーバーに導入するOS(もしくは機能)として、サーバー仮想化を行うためのハイパーバイザー型といわれるものもあります。
ベンダー | 製品/機能名 |
VMware | vSphere ESXi |
Microsoft | Hyper-V |
Linux | KVM |
ハイパーバイザーや仮想化の話は脱線してしまうので割愛します。また価格も考え方大きく異なるため割愛します。
ですが、特にVMware社のvSphereに関しては多くの企業で導入されており、仮想化のディファクトスタンダートとなっているため、押さえておくのが良いでしょう。
ハードウェア形状
IAサーバーの形状は、「タワー型」「ラックマウント型」「ブレード型」と大きく3つに分かれています。どの形状も扱う機会が多いと思います。
本記事では、HPE製のIAサーバーを例にそれぞれの違いを記載します。
タワー型
HPEのタワー型「ProLiant ML350 Gen10サーバー」です。
https://www.hpe.com/jp/ja/servers/tower-servers.html
デスクトップPCによく似ていますが、HDDが多く搭載できたり、背面の拡張スロットも多くあり拡張性が高くなっています。(デスクトップPC程度の拡張性のサーバーもありますが・・・・)
画像からはわかりにくいですが、高さ、幅、奥行きとも通常のでデスクトップPCの1.5倍~2倍程度の大きさになり、最大重量42kgと重いです。
タワー型は小規模環境として使う機会が多く、マシンルーム以外でもオフィスの隅っこにデスクトップPCのように設置されている場合も多いです。
ラックマウント型
ラックマウント型「HPE ProLiant DL380 Gen10」になります。
https://www.hpe.com/jp/ja/servers/rack.html
ラックマウント型は高さを抑えつつ、横幅と奥行きにスペースをとった形のサーバーになります。
赤色の部分がファンとなり、前から後ろへ全体に風を通して冷却を行うようになっています。
背面にはPCIスロット、ネットワーク、電源などデスクトップPCにあるようなパーツを増設できます。今回の機種では、背面にHDDも搭載できるため、画像ではHDDが背面にも挿入されています。
下記は、HPE製のラックになります。
ラックマウント型サーバーは、ラックと言われる鉄の箱に、サーバーに付属するラックレールを設置し、レールにラックマウントサーバーを設置します。
HPE製のラックを紹介しましたが、ラックは大まかな仕様が統一されており、別ベンダーのラックに、別ベンダーのサーバーを設置することも可能です。
ブレード型
ブレード型は、「エンクロージャ」に「ブレード」サーバーを導入することで、1つのサーバーとして稼働するようになります。
ブレード
ブレード型「HPE ProLiant BL460c Gen9サーバー」になります。
https://www.hpe.com/jp/ja/integrated-systems/bladesystem.html
名前はブレード(刃)ですが、日本では見た目の形状から「板」などとも呼ばれます。画像からわかりにくいですが、かなり小さく片手で持てるくらいの大きさです。
この小さい中にCPU、メモリ、HDDなど必要なパーツはすべて含まれています(電源はありません)。PCIの拡張スロットはありませんが、CNAと言われる規格でネットワークなどの拡張が行えるようになっています。CNAに接続するパーツは、CNAカードなどとも呼ばれます。
エンクロージャ
エンクロージャ「HPE BladeSystem c-Class c7000」です。
https://www.hpe.com/jp/ja/integrated-systems/bladesystem.html
ブレードサーバー自体は、電源を持たないため、エンクロージャの電源から電力供給を受けます。そのため、エンクロージャにブレードを挿入する(画像左)ことにより、初めて稼働することができます。
エンクロージャ背面(画像右)を見ると一番下に電源があり、筐体の上下には廃熱するためのファンが搭載されています。
中央に位置するのは、ネットワークスイッチなどです。ブレード自体はLANケーブルなど外部と直接接続するインターフェースはUSBなど最小限のため、LANやFCはエンクロージャに搭載する専用のネットワークスイッチやFCスイッチを経由して外部と接続します。
エンクロージャーには、搭載されているブレードのスタータス確認や集中管理するためのソフトウェア(Firmware)が筐体内で稼働しています。
エンクロージャーもラックに設置します。
ブレード型サーバは、2000年代あたりに非常に流行った印象があります。「ラックマウントと比べ省スペースで多くのサーバーを稼働できる」「一括管理が行える」「ケーブル数が削減できる」「拡張性が高い(ブレードを指すだけ)」などメリットが大きいです。
その反面、「扱うための技術要素が増える」「大きく重いため設置が大変」「Firmwareの互換性の要求が高い」などのデメリットもあります。
パソコンとの違い
外見の形状を見てみましたが、パーツ1つ1つを見ても、サーバーは普通のPCとは異なっています。サーバーもパーツ事にカスタマイズ(パーツの数、ハイスペック・ロースペックパーツへの交換)が可能になっています。
ラックマウント型「HPE ProLiant DL380 Gen10」のシステム構成図を参考に主要なパーツについて見てみましょう。
CPU
サーバーはマルチCPUを搭載できる機種が多いです。(安いサーバーでは1つのCPUだけですが)。DL380Gen10では、CPUソケット2つ備えているため、CPUを2つ搭載することができます。
パソコンのCPUでは、IntelのCore iシリーズなどが搭載されていますが、サーバー向けではXeon CPUになります。
XeonとCore iの違いは下記に詳しく書かれていますが、そのほかにもCPUの計算の信頼性向上もXeonでは行われています。
https://www.dospara.co.jp/plus/library/xeon-meaning/
メモリ
メモリも多くのメモリを搭載できるようになっています。DL380Gen10では、最大24枚のメモリを搭載でき最大メモリ容量は1.5TB(RDIMM)もしくは2TB(LRDIMM)です。
サポートされるメモリ規格は、レジスタ付き DIMM (RDIMM)、Load Reduced DIMM (LRDIMM)になります。
パソコンで使われるUnbuffered DIMM (UDIMM)は利用できません。
https://www.ipentec.com/document/hardware-memory-ecc-registered
https://e-words.jp/w/LRDIMM.html
電源
電源は2個を備えている場合が多いです。正確には1つが標準であり、2つ目はオプション扱いですが、2個を搭載ケースが多いのではないでしょうか。
片方の電源が故障した場合にも、もう1つの電源で稼働し続けることができます。
電源容量は500W・800W・1600Wがあり選択が可能です(搭載するパーツで電力量は変わります)。最近は自作PC界隈でも1000W以上の電源が多いため、驚くレベルではないかと思います。
一番異なる点として、日本の家庭用電源は100Vが一般的ですが、サーバーでは100V、200Vともよく使います。電源パーツによっては200Vしかサポートしていない場合もあるので購入の際には確認が必要です。
NIC
NICもしくはネットワークポートを複数搭載するケースが多いです。
サーバーのOS側のTeaming/Bondingなどの機能を使って、複数のポートを束ねて使うことにより、「ネットワーク帯域を大きくする」「1つのポートが障害で使えなくなる場合も残ったポートで通信を継続する」などで利用するためです。
2010年代後半から1Gbpsではなく10Gbpsを採用するケースが増えてきました。近年では、25Gbps、40Gbps、100Gbpsの採用も増えていると聞きます。正確には、昔から100Gbpsなどの要望はあったものの、当時は対応するパーツがありませんでした。しかし、最近はどのベンダーでも、広帯域のNICパーツをIAサーバー向けに供給しています。
HDD・SSD
搭載できるHDD・SSDの搭載スロットが多いです。DL380Gen10では、背面にもHDDスロットを搭載しており、最大30本のHDD・SSDを搭載可能です。これは、RAIDという機能を使うことで、ディスクアクセスの高速化・高信頼化をできますが、その分のためのHDD・SSD数が必要になるためです。
通常パソコンでは、HDD・SSDの接続にSATAと言われる規格を使いますが、サーバー用途ではSAS規格を使う場合が多いです。SATAも使えますが、信頼性に劣るため、SASほど高価なパーツが必要ない(バックアップ領域や低速でも問題ないデータ保管などの)場合に利用します。
https://www.intel.co.jp/content/www/jp/ja/support/articles/000005782/server-products.html
リモート管理ツール
サーバー機器は、リモート管理ツールを使うための専用のネットワークポートを備えている場合が多いです。リモート管理ツールの名称はベンダーにより異なり、HPEではiLOと言います。DL380Gen10では、iLO5(iLOのバージョン5)が搭載されています。
https://h50146.www5.hpe.com/lib/products/servers/proliant/manuals/880740-191_ja.pdf
リモート管理のネットワークポートは、IPアドレスを設定しWebブラウザから接続して利用します。システムボード上の専用チップで動作しており、OSとは独立した機構になっています。
そのため、OSがシャットダウン状態であっても電源が刺さっていればリモート管理のチップには通電されており、電源のON/OFFが行えます。サーバーはデータセンターなどに設置される場合も多く、トラブル時などに現地に行けないことがあるので、このようなリモート操作が必要になります。
また、OSでは検知対象とならないハードウェア異常の検知や、ハードウェアに関わるBIOS設定などの操作、リモート画面操作(BIOS画面やOS画面の操作)も可能になります。
※リモート画面操作は、ベンダーによりオプションライセンスが必要なケースもあります。
保守・問い合わせ
サーバーのようなエンタープライズ機器は保守体制もパソコンのような機器とは異なります。
CPU、メモリ、HDDなどはサーバーの稼働に直接影響してしまうため可能な限り早い復旧が必要です。HPEでは、24時間対応・連絡後は4時間以内で訪問しパーツ交換を行う保守オプションがあります。
また、HDDなど記憶装置には機密情報が含まれるため、交換後の壊れたパーツをお客側で保持し、会社の規則に則った方法で廃棄することが可能なオプションがあります。
※このようなオプションを付けない場合、基本的に交換後のパーツはベンダーが回収していきます。
サーバーのレンジ
最後に、サーバーのスペックによる呼称になります。日本でいう松竹梅のように「ハイエンド」「ミドル」「エントリー」と呼び分ける場合があります。最近は、サーバーでこの言葉を使うことは少なくなった印象ですが、ストレージ業界ではまだよく使っているようです。
こちらも厳密な定義はなく、一般的な感覚として使われています。サーバーにおいて私の感覚で記載します。
エントリーサーバ
1台あたり数十万円~百万円前後程度の価格帯サーバーです。スペック的にはCPU1ソケット、メモリ数十GB程度の小規模向けのイメージです。
ミドルレンジ(ミッドレンジ)サーバ
1台あたり数百万円程度~一千万円未満の価格帯サーバーです。この辺りは汎用的な用途のため、非常に広いレンジになりますが、スペック的にはCPU1~2ソケット、メモリ数十GB~数百GB程度の中規模~やや大規模向けのイメージです。
ハイエンドサーバ
1台あたり一千万円~以上の価格帯サーバーです。CPUソケット4つ以上、メモリ1TB以上など大規模もしくは高負荷なワークロードに使用されるイメージです。
さいごに
昔から感じていることですが、オンプレミス側の機器や仕組みなどは実際に現場に入ってみないとわからないことが多く、インフラエンジニアなどを目指す方の足かせになっているのではないかと思います。
私は、自作PCなどが好きだったことや、若い年齢からデータセンターなどの機器を触る機会も多かったため、なんとなく知識が身についてしまいました。この戯言が、サーバー機器にご興味がある方の一助になると幸いです。
それに反してクラウドは、運用面などはともかく、Webブラウザがあればどのようなことも試せるので便利だなと感じる今日この頃です。クラウドは空き時間に趣味的なことしかできていないため、また知識が付いたら戯言したいなと考えています。
good