コンピューティングでは、「サーバー」という言葉は待ち行列理論に由来します。待ち行列理論とは、待ち行列または待ち行列の数学的研究を指します。 「サービング」の使用は、RFC 4などの1960年代後半の文書にさかのぼります。
「サーバー」という用語は、RFA 5ドキュメントでもARPANET(インターネットの以前のバージョン)を説明し、ユーザーホストとサーバーホストの2種類のホストを区別するために使用されました。
この概要記事では、サーバーとは何か、サーバーの仕組みについて説明しました。 また、一般的なタイプのサーバーとその用途についても説明しました。
それでは、基本から始めましょう。
サーバーとは?
サーバーは、ネットワークを介して、クライアントと呼ばれる他のデバイスにリソース、データ、およびサービスを提供するデバイスまたはソフトウェアです。 理論的には、システムがクライアントマシンとリソースを共有する場合は常に、サーバーと見なされます。
システムは、別のシステムのリソースを使用し、同時にリソース(またはサービス)を提供できます。 このように、クライアントとサーバーの両方として機能できます。
CERNにある最初のWorld Wide Webサーバー| 画像クレジット:Wikimedia
通常、サーバーは、ラップトップ、デスクトップ、スマートフォンなどの、強力ではないクライアントデバイスのグループにネットワークを介して接続された強力なコンピューターです。 このネットワークアーキテクチャはクライアントサーバーモデルと呼ばれ、サーバーとクライアントマシンの両方が計算能力を備えていますが、特定のタスクがサーバーに割り当てられています。
最近の10年間で、コンピューティング技術は大幅に向上し、サーバーの定義はそれとともに進化しました。 現在、ハードウェアとソフトウェアのリソースを他のオペレーティングシステムと共有する仮想サーバーがあります。 これらは、機能性の向上、より高速なリソース制御、および費用効果の高いソリューションを提供します。
サーバーは通常どのオペレーティングシステムで実行されますか?
ほとんどのサーバーはリモートで構成および管理されるため、入力デバイス、モニター、オーディオハードウェア、およびUSBインターフェイスなしで無人で実行されます。 これらは、SSH、PowerShell、Microsoft管理コンソールなどのいくつかのコンピュータープログラムを介して管理されます。
家庭用コンピューターと同様に、サーバーも機能するためにオペレーティングシステム(OS)を必要とします。 サーバーの中で最も支配的なOSは、Fedora、Debian、Windows Server、およびFreeBSDです。 macOS Serverやz / OSのような独自のOSも導入されていますが、大きなシェアはありません。
どのように機能しますか?
サーバーとして動作するには、システムはクライアントからのリクエストをリッスンできるようにネットワーク接続で構成する必要があります。 1つのサーバーで数百万のクライアントにサービスを提供でき、1つのクライアントで多数のサーバーを使用できます。
サーバーオペレーティングシステムは、高度なレベルのハードウェア、ソフトウェア、およびネットワーク構成サービスを処理するように特別に設計されています。 セキュリティと重要な管理プロセスを実装しながら、クライアントの要求を聞いて応答する機能を提供します。
ラックマウント可能なサーバーのコンポーネント
たとえば、Microsoft Windows Server OSは、アイドル状態のネットワーク帯域幅を使用してマシン間の効率的な転送を促進し、完全なディスク暗号化システム、高度な脅威保護機能、およびサーバーを管理する管理センターを提供します。
クライアントがサービスまたはデータを必要とするとき、クライアントはネットワーク経由でサーバーにリクエストを送信します。 サーバーはこの要求を受信すると、処理を開始し(要求を満たすため)、対応するデータを送信します。
通常、このサーバー処理では、要求者のIDを確認し、要求リソースまたはデータにアクセスする権限があることを確認し、適切な情報で応答します。
最近のサーバーは、ファイルを保存して印刷ジョブを受け入れるだけではありません。 ニューラルネットワークのトレーニング、天気予報、分子モデリングなどの複雑なタスクに必要な集中的な計算を処理できます。
ミッションクリティカルなサーバーは非常にフォールトトレラントです。 彼らは、エラー率が低く、電源が途切れない専用ハードウェアを使用しています。 また、RAIDディスクシステム、ストレージの冗長性、EECメモリとともに、予期しない障害から保護するための集中的なプリブートメモリテストが組み込まれています。
さまざまな種類のサーバー
サーバーは、その目的に基づいてさまざまなカテゴリに分類できます。 ただし、それらすべてに1つの共通の役割があります。データ/リソースの共有と作業の分散です。
1. Webサーバー
Webサーバーは、他のプロトコルと共にハイパーテキスト転送プロトコル(HTTP)を使用して、World Wide Web経由で行われたクライアント要求に応答するハードウェアまたはソフトウェアです。
基本的には、ウェブコンテンツが保存されているコンピュータです。 ハードウェアはHTMLドキュメント、画像、オーディオ、ビデオ、JavaScriptファイルなどのコンテンツを保存しますが、サーバーにインストールされたソフトウェアは、クライアントがこれらのファイルにアクセスする方法を制御します。 また、要求元ユーザーへのWebサイトコンテンツの配信も保証します。
このプロセスは、クライアントサーバーモデルの完璧な例です。 Webサイトをホストするすべてのマシンには、Webサーバーソフトウェアがインストールされている必要があります。 Nginx、Apache、Microsoft Internet Information Server(IIS)は、最も人気のあるWebサーバーの一部です。
2. アプリケーションサーバー
名前が示すように、アプリケーションサーバーはアプリケーションを実行するように特別に設計されています。 ほとんどの場合、Web(ハイパーテキスト転送プロトコル)サーバーと組み合わせて機能するか、またはWebアプリケーションサーバーとして知られています。
ハードウェア側では、CPUとRAMは、アプリケーションサーバーにとって最も重要なコンポーネントです。 ソフトウェア側では、サーバーが実行できるプログラムを決定するオペレーティングシステムが主要な役割を果たします。
彼らは、高可用性の監視、クラスタリング、統合された冗長性、負荷分散、高性能分散アプリケーションサービス、および複雑なデータベースアクセスのサポートを備えている傾向があります。
最も一般的なアプリケーションサーバープラットフォームは、Apache Tomcat、WebLogic、Glassfish、J2EE、Apache Geronimo、およびJBoss Enterprise Application Platformです。
3. データベースサーバー
クライアント/サーバーモデルに従って、データベースサーバーはデータベースを格納および管理し、承認されたユーザーにデータアクセスを提供します。 通常、データは中央の場所に保管されるため、頻繁にバックアップされ、ユーザーやアプリケーションがネットワーク経由で簡単にアクセスできます。
データベース化された管理システムは、組織またはサードパーティによって開発されたコマンドラインユーザーインターフェイスまたはグラフィカルユーザーインターフェイスを通じてアクセスできます。 ユーザーはユーザーインターフェースを介してデータを操作しますが、実際にはデータベースサーバーにあるSQL ServerまたはOracleデータベースに保存されます。
Microsoft SQL Server、Oracle、Informix、DB2は、最も一般的な独自のデータベースアプリケーションです。 フリーソフトウェアデータベースアプリケーションの例には、MySQL、Ingres、およびPostgreSQLが含まれます。
4. メールサーバー
通常はインターネットを介して、ネットワークを介して電子メールを処理および配信します。 Webサーバーとメールサーバーはほとんど1台のマシンに統合されていますが、大規模なISPやパブリックメールサービス(YahooやGmailなど)は、メールの送受信に専用のハードウェアを使用している場合があります。
デバイスがメールサーバーとして機能するには、メールサーバープログラム(システム管理者がサーバーでホストされている各ドメインのメールアカウントを作成および管理できるプログラム)が必要です。 たとえば、ドメイン「rankred.com」をホストするサーバーは、「@ rankred.com」で終わるメールアカウントを提供します。
メールサーバーで使用される一般的なプロトコルには、SMTP(リレーのためにメールサーバーにメッセージを送信するため)、POP3、およびIMAP(メッセージを取得するため)が含まれます。
5. プロキシ
プロキシは、クライアント(リソースを要求する)とインターネット間のゲートウェイとして機能します。 これは、エンドユーザーを閲覧するサイトから分離する仲介サーバーです。
プロキシは、主にフィルタと検閲を回避するために使用されます。 たとえば、WebサイトがIPベースのジオロケーティングを使用してサービスを特定の国に制限している場合、クライアントは他の国にあるプロキシサーバーを使用してサイトのコンテンツまたはサービスにアクセスできます。
また、ファイアウォール機能、キャッシング、プライバシー、セキュリティなどの追加の利点も提供します。 一部のプロキシは、ウェブサイトのコンテンツを訪問者の母国語に翻訳し、データの一般的なエラーを修正し、アクセシビリティの問題を修正するためにも使用されます。
6.仮想サーバー
仮想サーバーは、ソフトウェアとハードウェアの両方のリソースを他の仮想サーバーと共有します。 つまり、コンピュータ全体がサーバーソフトウェアの実行専用ではありません。
サーバーごとに個別のマシンを必要とする代わりに、数十の仮想サーバーを同じコンピューター上で実行できます。 それぞれが個別のオペレーティングシステム、アプリケーション、および独立した再起動プロビジョニングとして指定されます。
仮想サーバーはより高速なリソース制御と費用効果の高いソリューションを提供するため、Webホスティング環境で非常に人気があります。
ほとんどの場合、パフォーマンスには影響がなく、Webサイト/アプリケーションは専用サーバーを介して提供されているかのように動作します。 ただし、単一の物理マシンで仮想サーバーのオーバーフローが発生すると、リソースが消費され、最終的にパフォーマンスの問題が発生する可能性があります。
7.カタログサーバー
グローバルカタログサーバーの図
カタログサーバーは、大規模なネットワーク全体でデータベース、ファイル、およびデータにインデックスを付け、キーワードやブール検索を含むさまざまな形式の検索を可能にします。 つまり、分散ネットワーク全体でユーザーが情報を検索するためにアクセスできる中心的なポイントです。
カタログサーバーは、インデックスまたは目次の管理を担当します。これは、Webサーバーやファイルサーバーで共有されるファイルなど、大規模なネットワークで簡単に見つけることができます。
たとえば、グローバルカタログサーバーは、ドメインコントローラーと同じ情報を保持しています。 また、Active Directoryドメインサービス(AD DS)レプリケーションシステムによって維持される、フォレスト内のすべてのドメイン名前付けコンテキストの読み取り専用レプリカも保持します(オブジェクトの検索を高速化するため)。
8. ゲームサーバー
ゲームサーバーは、マルチプレーヤービデオゲームのイベントの信頼できるソースです。 これは、マルチプレイヤーゲームをプレイするためにゲームクライアントが使用するローカルサーバーまたはリモートサーバーです。 ほとんどのゲームは、このタイプのサーバーに接続することにより、インターネット上で機能します。
ゲームサーバーは、専用サーバーとリッスンサーバーにさらに分類できます。 前者はクライアントとは独立して動作し、より高い帯域幅と処理能力を提供します。 後者はゲームクライアントと同じプロセスで実行されるため、プレイヤーは同時にゲームをホストして参加できます。
人気のあるマルチプレイヤーオンラインゲームのほとんどは専用サーバーで実行され、通常はゲームを所有するソフトウェア会社が管理しています。 これにより、企業はゲームコンテンツの更新と制御が容易になります。
9.コンピューティングサーバー
コンピューティングサーバーは、複雑な計算タスクを実行するためのさまざまなサービスを提供します。 ネットワークを介して、膨大な量のリソース、特にCPUとRAMを共有します。
ほとんどのコンピューティングサーバーは、科学者がさまざまな分野でリソースを大量に消費するさまざまなタスクを実行するために使用するスーパーコンピューターです。 一般的に、現代のスーパーコンピューターは、気候調査、天気予報、分子モデリング、量子力学、物理シミュレーション、石油およびガスの探査に使用されます。
10.通信サーバー
通信サーバーは、幅広い通信ベースのアプリケーションを処理するように特別に設計されています。 これにより、ベンダーはシステムアーキテクチャのさまざまなレベルで値を追加できます。
Carrier Grade LinuxやMicroTCAなどの業界が管理する標準に基づくこれらのサーバーは、ベンダーがワイヤレスブロードバンドやIPマルチメディアサブシステムなどの展開用のネットワークインフラストラクチャコンポーネントを開発するための基盤となるプラットフォームです。
3つの主要なプロパティがあります。柔軟性(アーキテクチャはスケーラブルです)、開放性(業界標準に基づいています)、キャリアグレード(簡単にアップグレードできます)。
11.ファイルサーバー
一般にオフィスや学校で見られるファイルサーバーは、接続されたクライアントにファイルシステム(またはファイルシステムの一部)を提供します。 許可されたすべてのユーザーがアクセスできるファイルの中央ストレージ場所と考えることができます。
これらのタイプのサーバーは、階層型コンピューティング環境内で機能します。 それらは、クライアント、マシン、ファイル、およびアプリケーションをネットワーク上の別個の関連するエンティティとして扱い、資格情報に基づいてユーザーにアクセスを許可します。
ファイルサーバーは、特定のファイルへのアクセスを特定のクライアントに制限するための、ある種のセキュリティシステムも備えています。 大企業では、このタスクは通常、MicrosoftのActive Directory、NovellのeDirectory、OpenLDAPなどのディレクトリサービスに委任されます。
12.サウンドサーバー
これは、サウンドカードまたはオーディオデバイスへのアクセスを提供するプログラム(通常はバックグラウンドで実行されます)です。 UnixライクなOSでは、さまざまなデータストリームを組み合わせ、単一の統合オーディオを出力デバイスに送信します。
JACK、PulseAudio、PipeWire、sndio、およびNetwork Audio Systemは、サウンドサーバーの人気のある例の一部です。
13.メディアサーバー
メディアサーバーはデジタルメディア(画像、オーディオ、ビデオ)を格納し、ネットワーク経由で利用できるようにします。 モーショングラフィックスとバーチャルリアリティコンテンツの使用の増加により、そのような種類のサーバーの需要が加速しています。
これは、ネットワークにアクセスでき、メディアの保存と共有に十分な帯域幅を持つアプリケーションソフトウェアまたはデバイスです。 たとえば、Windows XP Media Centerを実行しているホームシアターPC、Network Attached Storage、MediaPortal、または大規模なWebサイトのメディアをホストする商用Webサーバーなどです。
メディアサーバーは、ビデオオンデマンドを配信するために主に使用されます—事前に記録されたビデオコンテンツをストレージから取得し、ネットワーク経由で送信します。 これらのサーバーのもう1つの人気が高まっている用途は、ライブストリーミングです。コンテンツが作成されるとすぐに(数秒の遅延で)コンテンツを配信します。
NGINXおよびNGINX Plusは、Zynga、Dropbox、Netflixなどの大きなプラットフォームで使用される高度なメディアサーバーソリューションの一部です。 4億を超えるWebサイトがNGINXに依存して、コンテンツを迅速かつ安全に配信しています。
14.プリントサーバー
プリントサーバーは、ネットワークを介してプリンターをクライアントデバイスに接続します。 印刷要求を管理し、ネットワーク管理者とエンドユーザーにプリンターキューのステータスを表示します。
これは、印刷されたドキュメントの透かし、部門認証、カラー印刷の割り当てなどの管理ポリシーを適用するためによく使用されます。 Jet Direct、NetWare、ラインプリンターデーモン、インターネット印刷プロトコルなど、多くの独自仕様または業界標準の印刷プロトコルが存在します。
プリントサーバーは、小規模な組織と大規模な組織の両方で使用されています。 小規模オフィスでは、数十台のプリンターを管理するための小規模なネットワークデバイスまたは専用のプラグインボードとして実装されます。 大規模な組織では、専用サーバーが数百または数千のプリンターを管理します。
15. FAXサーバー
LANにインストールされたFAXサーバーにより、(LANに接続されている)デバイスはFAXメッセージを送受信できます。 それは、電話回線に接続されたLANまたはモデムにインストールされたソフトウェアプログラムである可能性があります。
クライアントからのドキュメントを受け入れ、ドキュメントをFAXに変換し、宛先アドレスに送信し、FAX呼び出しを受信し、受信ドキュメントを保存またはエンドユーザーに渡します。
彼らはどのくらいのエネルギーを使用していますか?
サーバーとその機能のボリュームが増大するにつれて、消費される電力の総量も増大します。 Statistaによると、世界には700万を超えるデータセンターがあります。
2018年、これらのデータセンターは205テラワット時の電力使用量を占め、これは地域の電力消費量の約1%です。 さらに、データセンターで実行されるコンピューティングの量は、2010年から2018年の間に5倍以上になりました。
近年、サーバーの需要は爆発的に増加しています(自動運転車、人工知能、および分散型製造システムの増加により)、エネルギー効率の向上により、電力消費は非常にゆっくりと増加しています。
インフラストラクチャ機器の効率が向上し、企業のデータセンターからハイパースケールのデータセンターおよびクラウドデータセンターに移行したため、コンピューティングの出力が上昇しても総電力消費量は安定しています。