persistentvolumeとは?初心者にも分かる基本と使い方共起語・同意語・対義語も併せて解説!

  • このエントリーをはてなブックマークに追加
persistentvolumeとは?初心者にも分かる基本と使い方共起語・同意語・対義語も併せて解説!
この記事を書いた人

高岡智則

年齢:33歳 性別:男性 職業:Webディレクター(兼ライティング・SNS運用担当) 居住地:東京都杉並区・永福町の1LDKマンション 出身地:神奈川県川崎市 身長:176cm 体系:細身〜普通(最近ちょっとお腹が気になる) 血液型:A型 誕生日:1992年11月20日 最終学歴:明治大学・情報コミュニケーション学部卒 通勤:京王井の頭線で渋谷まで(通勤20分) 家族構成:一人暮らし、実家には両親と2歳下の妹 恋愛事情:独身。彼女は2年いない(本人は「忙しいだけ」と言い張る)


はじめに

このページでは、クラウドやアプリを動かすときに重要な「 persistentvolume 」について、初心者にも分かるように噛み砕いて解説します。 Kubernetes を使う時、データをどう保存しておくかはとても大切なポイント。ここでは、persistentvolume がどんなものか、どう使うのか、実務での流れを見ていきます。

persistentvolumeとは何か

簡単に言えば、PersistentVolume(PV) は「クラスタ内のストレージ領域」のことです。サーバーのディスクやネットワークストレージ、クラウドのブロックストアなど、色々な場所にある保存場所を指します。Kubernetes は、Pod が必要とするデータをこの PV という箱に保存できるように管理します。

PVとPVCの関係

データを使うときには、ただ箱を用意するだけでは足りません。Kubernetes では「箱を借りたい人」と「箱を貸す人」をつなぐ仕組みがあります。これが PersistentVolumeClaim(PVC) です。PVC は「このくらいの容量が欲しい」「この種類のストレージがいい」といった要望を表します。Kubernetes は、要望に合う PV を探して割り当てます。これにより、開発者はどの箱がどのサーバーにあるかを気にせず、データを保存できるようになります。

動的プロビジョニングとストレージクラス

実は、PV を事前に作っておく必要がある場合と、動的に作ってくれる場合の二通りがあります。StorageClass という仕組みを使うと、PVC が生まれたときに自動で PV を作ってくれる「動的プロビジョニング」が可能です。これにより、開発者は「この容量が欲しい」「この性能が欲しい」という要望を PVC に書くだけで済み、運用側はストレージの管理を統合して楽になります

ストレージの種類と注意点

PV は「どの場所に保存するか」という観点でいろいろな種類があります。ローカルディスク、ネットワークストレージ、クラウドのブロックストアなどです。運用上の注意としては、PV のライフサイクルと PVC のライフサイクルが必ずしも同じではないこと、Pod が削除されてもデータはそのまま残る可能性があること、長期的なバックアップが必要なケースには別の対策を検討する必要があることなどです。

使い方の流れ

実際の運用では、以下のような流れでストレージを使います。まず、開発者は PVC を作成して、欲しい容量・ストレージの特性を宣言します。次に、Kubernetes が StorageClass を見て、動的プロビジョニングで適切な PersistentVolume を用意します。最後に、Pod が PVC をマウントして、アプリケーションがデータを保存・読み出しできるようになります。ここで重要なのは、アプリケーションが「データをどこに置くか」を意識せずに済むことです。実務ではこの自動化が大きな負担軽減につながります。

表で見る比較:PVとPVCの違い

項目PVPVC
役割ストレージの実体を表す箱ストレージの要望を表す申請
管理者の視点実際の容量・属性を設定・管理ユーザーの要件を定義・要求
結びつき複数の PVC が同じ PV を使える場合は競合回避が必要特定の PV に割り当てられる
動的作成StorageClass により自動作成可能PVC 側の要件に合わせて対応

用語のまとめ

PVクラスタ内のストレージ領域のこと。データを実際に保存する場所を指す。
PVCデータを保存したいという要求。どのPV を使うかを決めるための申請。
最後に

初心者のうちは「PersistentVolume」や「StorageClass」という言葉が難しく感じるかもしれません。しかし、日常のファイル保存のイメージを使えば理解は進みます。デプロイ先のクラスタを実際に動かしてみて、PVC を作成してみると、PV がどのように割り当てられ、どのようにデータが保存されるかが見えてきます。学習を続けるうちに、ストレージの仕組みが自然と身についていくでしょう。


persistentvolumeの同意語

永続ボリューム
Kubernetesにおける長期的にデータを保存できるストレージリソースの正式な日本語表現。PVと同義で、PVCと結合してアプリのデータをクラスタ内で保持します。
PV
PersistentVolumeの略称。Kubernetesのストレージリソースの短縮形で、永続ボリュームを指します。
PersistentVolume
英語の正式名称。Kubernetesのストレージリソースの一つで、PVCと連携して永続的なデータを扱う抽象リソースです。
永続ストレージボリューム
日常的な言い換えとして使われることがある表現。意味は“永続的なストレージボリューム”で、PVと同義です。ただし公式文書では『永続ボリューム』が主に用いられます。
PVリソース
PV(PersistentVolume)を指す別表現。クラスタ内の永続ストレージリソースを意味します。

persistentvolumeの対義語・反対語

一時的ストレージ
データが短時間しか保持されず、再起動や削除時に消える性質のストレージ。Kubernetes では pod の寿命やセッション期間に依存するボリュームのことを指すことが多いです。
揮発性ストレージ
電源を落とすとデータが失われる性質のストレージ。長期保存には向かず、短期的な作業用データに適しています。
非永続的ストレージ
データを長期的に保存する目的には適さないストレージ。再起動や削除でデータが消える前提の性質を指します。
エフェメラルボリューム
Ephemeral volume の直訳的表現。短命で、Pod のライフサイクルに強く依存し、Pod が削除されるとデータも消えるボリュームのことを指します。
Podのライフサイクル依存ストレージ
ボリュームのライフサイクルが Pod の寿命と直結しており、Pod が削除されるとデータが失われるタイプのストレージ。代表例として空のディレクトリ系ボリュームなどが挙げられます。

persistentvolumeの共起語

PersistentVolume
Kubernetesクラスタ内の実際のストレージリソース。容量・アクセスモード・ストレージクラスなどの属性を持ち、PersistentVolumeClaim(PVC)と結びつくことでPodにマウントされます。
PersistentVolumeClaim
Podが必要とするストレージを要求するリソース。PVCがPVとバインドされると、対応するPVがPodにマウントされて利用されます。
StorageClass
動的プロビジョニングの設定を定義するリソース。どのストレージバックエンドを使うか、どのプロビジョナーを用いるかを決定します。
DynamicProvisioning
PVC作成時にKubernetesが自動でPVを作成・割り当てる仕組み。StorageClassに紐づくプロビジョナーを使用します。
StaticProvisioning
前にPVを作成しておき、PVCへ手動で紐づけて使用する従来の方法です。
CSI
Container Storage Interfaceの略。ストレージドライバーとKubernetesを標準的に接続する仕組み。
CSIDriver
CSI規格に準拠したストレージドライバーの実装。複数のバックエンドをKubernetesと統合します。
InTreeVolumePlugin
Kubernetesに内蔵されている従来型のプラグイン。将来的にはCSIへ移行が進んでいます。
Provisioner
StorageClassが利用するバックエンドの実装。例としてkubernetes.io/aws-ebsなどが挙げられます。
ReclaimPolicy
PVCから解放されたPVの処理方針。Delete(ストレージを削除)、Retain(保持)、かつ旧来のRecycleは廃止されています。
AccessMode
PVへアクセスする権限のモード。代表的なものはReadWriteOnce(RWO)、ReadOnlyMany(ROX)、ReadWriteMany(RWX)です。
ReadWriteOnce
1つのノードからのみ読み書き可能。
ReadOnlyMany
複数ノードから読み取りのみ可能。
ReadWriteMany
複数ノードから読み書き可能。
VolumeMode
PVのモード。Filesystemはファイルシステムとしてマウント、Blockはブロックデバイスとして扱います。
Filesystem
ファイルシステムとしてマウントされる場合のモード。
Block
ブロックデバイスとして扱われる場合のモード。
Capacity
PVの容量指定。例: 10Gi。PVCの要求サイズとマッチします。
MountOptions
Podへマウントする際に指定する追加オプション。例: hard, timeoなど。
ClaimRef
PVがどのPVCに紐づいているかを示す参照情報(PVCへの紐付けを指します)。
VolumeBindingMode
StorageClassがPVをバインドするタイミングの設定。WaitForFirstConsumerやImmediateがあります。
WaitForFirstConsumer
最初のPodがスケジュールされるまでPVのバインドを待つ設定。
Immediate
PVC作成と同時にPVを即時バインドする設定。
Topology
トポロジー情報。ノードの場所やストレージの近接性を表し、適切なノードでPVを使用させるための制約に用います。
TopologySelector
PVの利用可否を制約する条件を定義する設定項目。
NFS
NFS(Network File System)をバックエンドとして使用する場合の代表的なPV。
ISCSI
iSCSIプロトコルをバックエンドとして使用する場合のPV。
CephFS
Cephのファイルシステムをバックエンドとして使用する場合のPV。
CephRBD
CephのRBD(ブロックデバイス)をバックエンドとして使用する場合のPV。
GlusterFS
GlusterFSをバックエンドとして使用する場合のPV。
AWSEBS
AWSのElastic Block Storeをバックエンドとして使用する場合のPV。
GCEPersistentDisk
Google Cloud PlatformのPersistent Diskをバックエンドとして使用する場合のPV。
AzureDisk
Azureのブロックストレージ(ディスク)をバックエンドとして使用する場合のPV。
AzureFile
Azureのファイル共有をバックエンドとして使用する場合のPV。
OpenStackCinder
OpenStackのCinderブロックストレージをバックエンドとして使用する場合のPV。
LocalPV
ノードのローカルディスクを直接PVとして提供する場合の設定。ノード故障時の耐障害性に注意。
Longhorn
LonghornはKubernetes向けの分散ストレージソリューション。CSI経由でPVを提供します。
OpenEBS
OpenEBSはKubernetes上のブロックストレージソリューション。PVC経由で利用します。

persistentvolumeの関連用語

PersistentVolume (PV)
Kubernetes クラスター内で事前に用意された永続ストレージのリソース。ボリュームの実体は StorageBackend にあり、PVC によって利用が開始される。
PersistentVolumeClaim (PVC)
Pod が必要とするストレージ量を宣言するオブジェクト。容量やアクセスモード、StorageClass などを指定して PV を要求する。
StorageClass
動的プロビジョニングの設定を定義するリソース。どのストレージバックエンドを使うか、パラメータを指定する。
CSI (Container Storage Interface)
外部ストレージドライバーの統一インタフェース。Kubernetes で標準的にストレージを取り扱う仕組み
Dynamic Provisioning
PVC 作成時に自動で PV を作成する機能。StorageClass に基づく自動プロビジョニングを指す。
Static Provisioning
管理者が先に PV を作成しておき、PVC がそれにバインドされる方式。
Reclaim Policy
PV が PVC から解放されたときの処理方針。Delete でストレージを削除、Retain で残しておく。
Access Modes
PV へのアクセスの仕方を表す属性。ReadWriteOnce RWO, ReadOnlyMany ROX, ReadWriteMany RWX の3つ。
VolumeMode
PV のマウントモード。File はファイルシステムとしてマウント、Block はブロックデバイスとしてマウント。
Capacity
PV が提供する総容量。PVC は要求容量を指定してマッチングされる。
Binding
PVC と PV を結び付けるプロセス。適切な PV が見つかると自動的にバインドされることが多い。
PV Phase
PV の現在の状態。Available, Bound, Released などがある。
Local PersistentVolume
ノード上のローカルディスクを PV として提供するタイプ。データローカリティを活かす設計。
NFS
ネットワークファイルシステムをバックエンドとするストレージ。複数ノードから同時アクセスが可能。
iSCSI
SCSI over IP を使うブロックストレージ。ネットワーク経由でブロックデバイスを提供。
CephFS
Ceph の分散ファイルシステムをマウントして使うストレージバックエンド。
Ceph RBD
Ceph のブロックデバイスをバックエンドとして提供。RBD プロビジョナーと連携することが多い。
GlusterFS
分散ファイルシステムのバックエンド。複数ノードでストレージを共有する場合に使用。
AWS EBS CSI
Amazon(関連記事:アマゾンの激安セール情報まとめ) Web Services の EBS ボリュームを Kubernetes で利用する CSI ドライバー。
GCE PD CSI
Google Cloud の Persistent Disk を Kubernetes で使う CSI ドライバー。
Azure Disk CSI
Azure のディスクを Kubernetes で利用する CSI ドライバー。
Provisioner
StorageClass で指定する、動的プロビジョニングを実装するドライバーの総称。
VolumeExpansion
PVC の容量を後から拡張する機能。適切なストレージバックエンドがサポートしている必要がある。
VolumeSnapshot
PV の時点の状態を写真(関連記事:写真ACを三ヵ月やったリアルな感想【写真を投稿するだけで簡単副収入】)のように保存するスナップショット。データのバックアップ・リストアに利用。
VolumeSnapshotClass
VolumeSnapshot のデフォルトの挙動やプロビジョニングを定義する設定。
VolumeSnapshotContent
VolumeSnapshot の実体データを表すリソース。スナップショットの保存先情報を保持。
Kubelet
ノード上で Pod の管理とマウント、ボリュームの準備を担当するエージェント
StorageBackend
実際のストレージを提供する物理的または仮想的なバックエンド。
Namespace
Kubernetes の論理的な区分。PVC は通常 Namespace ごとに分離される。
Cluster-scoped PV vs Namespace-scoped PVC
PV はクラスター全体のリソースとして扱われるのに対し、PVC は名前空間に紐づくリソースである点が特徴。
ReadWriteOnce (RWO)
1つのノードから読み書き可能なアクセスモード。
ReadOnlyMany (ROX)
複数ノードから読み取り専用でアクセス可能なモード。
ReadWriteMany (RWX)
複数ノードから読み書き可能なモード。

persistentvolumeのおすすめ参考サイト


インターネット・コンピュータの人気記事

awstatsとは?初心者でもわかる使い方と基本解説共起語・同意語・対義語も併せて解説!
14234viws
bing・とは?初心者のための基本ガイド:検索エンジンの仕組みと使い方共起語・同意語・対義語も併せて解説!
2377viws
着信転送とは?初心者向けガイドで分かる使い方と設定のコツ共起語・同意語・対義語も併せて解説!
1054viws
差し込み印刷・とは?初心者でもすぐわかる使い方と仕組みガイド共起語・同意語・対義語も併せて解説!
933viws
com端子・とは?初心者にも分かる基礎ガイド|シリアルポートの使い方と歴史を解説共起語・同意語・対義語も併せて解説!
900viws
充電アダプターとは何かを徹底解説|初心者でも分かる基本と選び方のコツ共起語・同意語・対義語も併せて解説!
882viws
pinロックとは?初心者が知っておくべき基本と使い方ガイド共起語・同意語・対義語も併せて解説!
783viws
7zファイル・とは?初心者でもわかる使い方と特徴を解説共起語・同意語・対義語も併せて解説!
778viws
リマインドメールとは?初心者にもわかる基本ガイドと使い方のコツ共起語・同意語・対義語も併せて解説!
764viws
全角文字とは?初心者向け解説|全角と半角の違いをやさしく学ぶ共起語・同意語・対義語も併せて解説!
739viws
none とは?初心者にもやさしく解説する意味と使い方ガイド共起語・同意語・対義語も併せて解説!
683viws
16進数カラーコード・とは?初心者でもつまずかない基礎と使い方ガイド共起語・同意語・対義語も併せて解説!
648viws
asp・とは?初心者向けに徹底解説する基本と使い方ガイド共起語・同意語・対義語も併せて解説!
545viws
countifとは?初心者でもすぐ使える基本と応用ガイド共起語・同意語・対義語も併せて解説!
538viws
ローカルポート・とは?初心者にも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
537viws
xlsmとは?初心者でも分かるExcelのマクロ付きファイルの基本共起語・同意語・対義語も併せて解説!
530viws
ワンタイムコード・とは?初心者でも分かる基本と使い方ガイド共起語・同意語・対義語も併せて解説!
497viws
csvダウンロードとは?初心者が今すぐ使える基本ガイド共起語・同意語・対義語も併せて解説!
469viws
googleドキュメントとは?初心者が今日から使いこなす基本ガイド共起語・同意語・対義語も併せて解説!
433viws
sha256とは?初心者が知るべき暗号ハッシュの基礎と使い道共起語・同意語・対義語も併せて解説!
423viws

新着記事

インターネット・コンピュータの関連記事