質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

Q&A

解決済

3回答

1750閲覧

データセンタ(サーバファーム)の仕組みについて

mukkun

総合スコア882

データベース設計

データベース設計はデータベースの論理的や物理的な部分を特定する工程です。

0グッド

1クリップ

投稿2016/11/02 03:37

編集2016/11/02 04:02

最近インフラ周りに手を付けることが多く、
今抱えている問題に付随する疑問になります。

データセンタでは、
複数のサーバを並列接続して動かしていると勝手に想像しているのですが、
あれは全てレプリケーションで動かしているのでしょうか。

というのも、
1つのサーバにHDDを増設し続けるとは考えにくく。
1サーバのHDD増設上限が100個までとして、
10TBのHDDを上限一杯乗っけて1PBとします。

1PB以上拡張したい際にもう1基サーバを接続して、
合計2PBにスケールアップさせるのでしょうか。

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

回答3

0

データセンターだからレプリケーション、という話ではないです。

データセンターが何を提供するかというとおおむね以下になるかと思います。
・機器設置スペース(当たり前ですが)
・切れない電源(各々の機器への供給電源自体が二重化されていて、さらにデータセンタービル自体が数日は外部電源が途絶えても大丈夫なように自家発電装置を持っているところがほとんどです)
・エアフロー(機器の冷却を考えた空調設備・作りとなっています)
・耐震性(ビル自体が堅牢で、各ラックにも耐震処理が施されています)
・物理的なセキュリティ(大抵データセンターの場所は公表されておらず、また、入館に際しては一定の手続きが必要で契約者といえど手続きに不備があれば入館できません。また、自分が契約していないエリアやラックを開錠することはできません)

そこに何を設置するかはデータセンター契約者(利用者)の判断一つです。
データセンターにサーバが置いてあってもそれが単一障害点になっているケースはいくらでもあります。

スケールアップ/スケールアウトの話でいえば、最初の時点である程度将来的な拡張性を見込んで設計するものですが、それが逼迫してくるのであれば最後は物理的に増設するか、上位機種にマイグレーションするしかないです。

投稿2016/11/02 03:48

編集2016/11/02 03:57
ynakano

総合スコア1894

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ynakano

2016/11/02 03:55

質問のタグが「データベース設計」になっていますが、私の回答と質問の意図はあってますでしょうか? 「データセンター」をググっても私の回答で言っているもの以外には見当たらないのですが。
mukkun

2016/11/02 04:03

ご回答有り難うございます。 すみません。質問内容が悪かったです。 データセンタそのものの作りではなく、 サーバ間接続等の仕組みが知りたく質問させて頂きました。
guest

0

ベストアンサー

データセンタの定義を理解されていないような気がします。
データセンタはサーバ等のIT機器を設置する専用の建屋を指します。

複数のサーバを並列接続して動かしていると勝手に想像しているのですが、

並列接続が何を指すのか不明ですが、データセンタ毎に提供するサービスに従った通信方式により、各機器の通信を可能とすることがほとんどだと思います。

あれは全てレプリケーションで動かしているのでしょうか。

"同期"という意味でのレプリケーションでしょうか?
これは、データセンタが提供するサービス、または各個実装した機能に依ります。

というのも、

1つのサーバにHDDを増設し続けるとは考えにくく。
1サーバのHDD増設上限が100個までとして、
10TBのHDDを上限一杯乗っけて1PBとします。

上記から、電子データを収める役割を担う建屋をデータセンタと理解しているのでしょうか?

データ格納領域におけるスケールアップについて回答します。
電子データを収めるものはサーバに限った話ではなく、外部ストレージ機器を用いることがあり、データセンタにおいては導入されているサイトがほとんどだと思います。
外部ストレージは拡張筐体を導入することで、ハードディスクなどの補助記憶装置を増設することができます。
サーバは、この外部ストレージとUTP、SCSI、FC、InfiniBAND等で接続します。

1PB以上拡張したい際にもう1基サーバを接続して、

合計2PBにスケールアップさせるのでしょうか。

サーバをデータ格納領域として使用するのであれば、そのような実装もあるでしょう。
ただし、2基のサーバを1つの格納領域として見做したいのであれば、データを格納するサービス側は、2基のサーバに分散してデータを格納するような実装をする必要があります。

投稿2016/11/02 04:23

over

総合スコア4309

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

mukkun

2016/11/02 04:48

ご回答ありがとうございます。 とても為になります。 データセンタの意味を勘違いはしていないのですが、 私の文章がおかしかったです。 私の思う普通のサーバ構成とは全く違う作りで面白いです。 > 2基のサーバを1つの格納領域として見做したいのであれば、データを格納するサービス側は、2基のサーバに分散してデータを格納するような実装をする必要があります。 DBの場合ですが、 データ格納時にパーティショニングさせて引き出す際に結合する等の対処を行っているのでしょうか。
over

2016/11/02 05:22

> データ格納時にパーティショニング ここ良くわからないです。 > 引き出す際に結合する等の対処を行っているのでしょうか。 ソフトウェア実装については把握していません。すいません。 私も全てのDBソフトウェアを熟知しているわけではないので的確なご回答差し上げることはできませんが、個々ローカルにディスクをもつ複数台のサーバで、DBクラスタは難しいような気がします。 あまり聞いたことがありませんし、そのような構成での構築を依頼されたことがありません。 どうしても実現したいのであれば、以下例のようなイレギュラー処理となるのでは?と思います。 1) 1PB ローカルディスクを積んだAサーバ追加。 2) Aサーバでiscsi等で共有ディスクを作成。 3) Bサーバで、Aサーバの共有ディスクをマウント 4) Oracleであれば、データファイルを別パーティションに収めることが可能なので、溢れそうなデータファイルを共有ディスクに作成する。 この場合、Bサーバはもちろん、Aサーバに障害が発生しただけでもOracleは停止します。 耐障害性の点からみると、この構成は最終手段です。 クエリを受け付けるサーバは複数台のクラスタ構成とし、データ格納領域は共有ストレージを使用することで、パフォーマンス/耐障害性に優れ、スケールアップ/スケールアウトし易い構成になります。
mukkun

2016/11/02 05:37

ご回答有り難うございます。 データ格納時にパーティショニングとは、データを分散して格納するという表現だったのですが、 正しくなかったですね。。 やはりご提示頂いたようにネットワークドライブでの方法になりそうですね。 大変勉強になりました。 ありがとうございます。
over

2016/11/02 05:45

> やはりご提示頂いたようにネットワークドライブでの方法になりそうですね。 こちら、障害点がシングルポイントどころか1/2ポイントとなりそうですが、大丈夫ですか? また、導入されているDBソフトウェアで実現可能か確認してください。
mukkun

2016/11/02 05:50

現在PostgreSQLを使用しています。 テーブル空間機能を使用して、速度は置いといて問題なく接続できることを確認しています。 変な作りなのは重々承知しているのですが、 現在使用しているクラウドサービスがHDDの最大容量1TBとなっており、 これ以上増やせない状態となっています。  ※DB、Cloudの変更は不可。既存のデータは精査済。 VMインスタンスは増やせる為、 サーバ2基構成にさせてなんとかできないか思案中になります。
over

2016/11/02 06:11

Postgresであれば、テーブル単位でしか分割できないようなので、いずれにせよ移行も絡みそうですね。 検証環境が作成できるのであれば、検証の上本番に挑むのがベストです。
mukkun

2016/11/02 06:28

Cloudさえ変えられれば全て解決するんですが。。 別で質問させて頂いているのですが、 PostgresForestというミドルウェア?がデータの分散を実現してくれそうなのですが、 更新が止まっていることとクライアントがJavaでしか使用不可とのことで、 使用ができず。。 2日間ずっと調べているのですが、 いい案がなく途方にくれている状態です。。
mukkun

2016/11/02 07:39

pgpoolはレプリケーションしたものをパラレルクエリするのかと思いましたが、 頂いたURLには確かに"計算ノード10台に5000万件のテーブルを500万件ずつ分散して格納"と記載ありますね! ちょっとやってみます! CitusDBはPostgreSQLの完全互換ではなさそうなんですよね。。 先日、私も発見しまして「おっ!」と思ったのですが、 Documentationを検索する限りトリガーが使えなさそうで、 使えなくなると今度はサービス側で機能を追加しなくてはいけなくなってしまうので、 その時は見送りましたが、使ってみないとわからないですよね。。 とりあえずpgpoolからやってみます!
guest

0

最近のデータセンターではマシンは概ね、HDDを実装していません。
CPU・メモリのみを実装したブレードサーバと、大規模ストレージ製品を組み合わせた構成です。
その中に、仮想マシンを作成して、ユーザに割り当てる構成が今の流れですね。

ご質問の「容量の増設どうやるの?」的な回答としては、採用している
「ストレージ製品」にもよりますが、複数のHDDをRAID構成して
いくつかの束として認識しているはずですので、
メーカーから増設用の筐体を買って増設・・というところでしょうか。

詳しくは、最近の「ストレージ製品」を検索ください。

投稿2016/11/02 04:08

akio221

総合スコア716

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

ynakano

2016/11/02 04:27

データセンターに設置するサーバには個別にHDDは搭載されていない、という事でしょうか? そのような意味での記述であれば、私の知る限りそんな事はないです。 ブレード+ストレージという構成もありますが、1Uないし2Uのサーバに個別にHDDを搭載してRAIDを組んでいるものも多数あります。 また、自社で設備を調達・管理しているような企業においては何でもかんでも仮想化されている訳でもないです。 物理サーバを並べてLB等で負荷分散するという構成もまだまだ多いです。 まぁ、そういった企業が外部のホスティング業者に乗り換えるという傾向はありますが。
akio221

2016/11/02 04:48

確かに、 >>最近のデータセンターではマシンは概ね、HDDを実装していません。 と、述べましたが >データセンターに設置するサーバには個別にHDDは搭載されていない、という事でしょうか? 全くない、という回答をしたつもりはありません。誤解を招いたようであれば訂正しますが、 >ブレード+ストレージという構成もありますが、1Uないし2Uのサーバに個別にHDDを搭載してRAIDを組んでいるものも多数あります。 筐体やスペースをごっそり貸し出すハウジング契約なら、そのような構成もあるでしょう。 また、ライセンス問題などではMicroSoftやOracleなどには泣かされますので、 やむなく実機をおき、という構成もあるでしょう。 しかし、昨今、データ集約する場所において、筐体の共用化と仮想化が 一段と進んでいくのも確かです。 >また、自社で設備を調達・管理しているような企業においては何でもかんでも仮想化されている訳でもないです。 それは広義のデータセンターではありませんし、1PBなるストレージを扱うケースで 借り入れる、その上でのご質問と捉え、回答から除外しました。
mukkun

2016/11/02 05:40

ご回答ありがとうございます。 そういった構成もあるのですね。 時代が進むごとに、覚えることも増えていき大変です。。
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問