Ubuntu 18.04でストレージデバイスを管理するためのLVMの使い方
Ubuntu 18.04を使用していませんか?別のバージョンやディストリビューションを選択してください。
紹介
論理ボリューム管理(LVM)は、ユーザーに物理ストレージデバイスのレイアウトをプールおよび抽象化する力を与えるストレージデバイス管理技術です。デバイスマッパーLinuxカーネルフレームワークを使用し、現在のバージョンであるLVM2は、既存のストレージデバイスをグループにまとめ、必要に応じて結合されたスペースから論理ユニットを割り当てるために使用できます。
このチュートリアルでは、ボリュームや潜在的なターゲットに関する情報を表示してLVMを管理する方法、さまざまなタイプのボリュームを作成および削除する方法、サイズ変更や変換を通じて既存のボリュームを修正する方法について学びます。
前提条件
続けるためには、Ubuntu 18.04 サーバーに設定された root でないユーザーが sudo 権限を持っている必要があります。始めるためには、私たちの Ubuntu 18.04 初期サーバー設定ガイドに従ってください。
さらに、LVMのコンポーネントや概念に不慣れな場合は、詳細については私たちのLVM入門ガイドを参照してください。
準備ができたら、sudo ユーザーでサーバーにログインしてください。
ステップ1 - 物理ボリューム、ボリュームグループ、および論理ボリュームに関する情報の表示
システム上のさまざまなLVMコンポーネントに関する情報にアクセスすることは、物理ボリュームおよび論理ボリュームを管理するために不可欠です。LVMはLVMスタックの各レイヤーに関する情報を表示するためのいくつかのツールを提供しています。
すべてのLVM互換ブロックストレージデバイスに関する情報を表示
LVMが管理可能なすべての利用可能なブロックストレージデバイスを表示するには、lvmdiskscanコマンドを使用します:
- sudo lvmdiskscan
/dev/sda [ 200.00 GiB]
/dev/sdb [ 100.00 GiB]
2 disks
2 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
LVMの物理ボリュームとして使用される可能性のあるデバイスに注意してください。
これは、おそらくLVMで使用するために新しいストレージデバイスを追加する際の最初のステップになるでしょう。
物理ボリュームに関する情報の表示
ストレージデバイスには、LVMコンポーネントとして使用可能であることを示すためにヘッダーが書き込まれます。これらのヘッダーを持つデバイスは、物理ボリュームと呼ばれます。
物理ボリュームのみを返すオプション -l を使用して lvmdiskscan を実行することで、システム上のすべての物理デバイスを表示することができます。
- sudo lvmdiskscan -l
WARNING: only considering LVM devices
/dev/sda [ 200.00 GiB] LVM physical volume
/dev/sdb [ 100.00 GiB] LVM physical volume
2 LVM physical volume whole disks
0 LVM physical volumes
コマンドpvscanは、LVM物理ボリュームを検索するために使用されるすべての利用可能なデバイスを検索する点で類似しています。出力形式には、少量の追加情報が含まれています:
- sudo pvscan
PV /dev/sda VG LVMVolGroup lvm2 [200.00 GiB / 0 free]
PV /dev/sdb VG LVMVolGroup lvm2 [100.00 GiB / 10.00 GiB free]
Total: 2 [299.99 GiB] / in use: 2 [299.99 GiB] / in no VG: 0 [0 ]
ボリュームに関する追加の詳細が必要な場合は、pvs および pvdisplay コマンドを使用すると、それを確認できます。
pvsコマンドは非常に柔軟に設定可能で、多くの異なる形式で情報を表示できます。出力を厳密に制御できるため、スクリプトや自動化が必要な場合によく使用されます。基本的な出力は、以前のコマンドと同様の便利な要約を提供します:
- sudo pvs
PV VG Fmt Attr PSize PFree
/dev/sda LVMVolGroup lvm2 a-- 200.00g 0
/dev/sdb LVMVolGroup lvm2 a-- 100.00g 10.00g
より詳細で人間が読める出力のためには、pvdisplay コマンドが良いオプションです:
- sudo pvdisplay
--- Physical volume ---
PV Name /dev/sda
VG Name LVMVolGroup
PV Size 200.00 GiB / not usable 4.00 MiB
Allocatable yes (but full)
PE Size 4.00 MiB
Total PE 51199
Free PE 0
Allocated PE 51199
PV UUID kRUOyU-0ib4-ujPh-kAJP-eeQv-ztRL-4EkaDQ
--- Physical volume ---
PV Name /dev/sdb
VG Name LVMVolGroup
PV Size 100.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 25599
Free PE 2560
Allocated PE 23039
PV UUID udcuRJ-jCDC-26nD-ro9u-QQNd-D6VL-GEIlD7
各ボリュームにマッピングされた論理的な範囲を発見するには、pvdisplayに-mオプションを指定してください:
- sudo pvdisplay -m
--- Physical volume ---
PV Name /dev/sda
VG Name LVMVolGroup
PV Size 200.00 GiB / not usable 4.00 MiB
Allocatable yes
PE Size 4.00 MiB
Total PE 51199
Free PE 38395
Allocated PE 12804
PV UUID kRUOyU-0ib4-ujPh-kAJP-eeQv-ztRL-4EkaDQ
--- Physical Segments ---
Physical extent 0 to 0:
Logical volume /dev/LVMVolGroup/db_rmeta_0
Logical extents 0 to 0
Physical extent 1 to 5120:
Logical volume /dev/LVMVolGroup/db_rimage_0
Logical extents 0 to 5119
. . .
これは、管理目的のためにどのデータがどの物理ディスクに保管されているかを特定しようとする際に非常に役立ちます。
ボリュームグループに関する情報の表示
LVMには、ボリュームグループに関する情報を表示するためのツールも多数あります。
vgscan コマンドは、システムで利用可能なボリュームグループをスキャンするために使用できます。また、必要に応じてキャッシュファイルを再構築します。新しいシステムにボリュームグループをインポートする際に使用するのに適したコマンドです:
- sudo vgscan
Reading all physical volumes. This may take a while...
Found volume group "LVMVolGroup" using metadata type lvm2
このコマンドはあまり多くの情報を出力しませんが、システム上のすべての利用可能なボリュームグループを見つけることができるはずです。より多くの情報を表示するには、vgs および vgdisplay コマンドが利用可能です。
物理ボリュームの対格と同様に、vgsコマンドは多用途であり、さまざまな形式で大量の情報を表示できます。その出力は操作可能であるため、スクリプティングや自動化が必要なときによく使用されます。例えば、物理デバイスと論理ボリュームパスを表示するためのいくつかの便利な出力の変更があります:
- sudo vgs -o +devices,lv_path
VG #PV #LV #SN Attr VSize VFree Devices Path
LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(0) /dev/LVMVolGroup/projects
LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(2560) /dev/LVMVolGroup/www
LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(3840) /dev/LVMVolGroup/db
LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sda(8960) /dev/LVMVolGroup/workspace
LVMVolGroup 2 4 0 wz--n- 299.99g 10.00g /dev/sdb(0) /dev/LVMVolGroup/workspace
同様に、より冗長で人間が読みやすい出力を得るには、vgdisplay コマンドを使用してください。-v フラグを追加すると、ボリュームグループが構築されている物理ボリュームや、そのボリュームグループを使用して作成された論理ボリュームに関する情報が提供されます。
- sudo vgdisplay -v
Using volume group(s) on command line.
--- Volume group ---
VG Name LVMVolGroup
. . .
--- Logical volume ---
LV Path /dev/LVMVolGroup/projects
. . .
--- Logical volume ---
LV Path /dev/LVMVolGroup/www
. . .
--- Logical volume ---
LV Path /dev/LVMVolGroup/db
. . .
--- Logical volume ---
LV Path /dev/LVMVolGroup/workspace
. . .
--- Physical volumes ---
PV Name /dev/sda
. . .
PV Name /dev/sdb
. . .
vgdisplay コマンドは、LVM スタックのさまざまな要素に関する情報をまとめることができるため、便利です。
論理ボリュームに関する情報の表示
論理ボリュームに関する情報を表示するために、LVMには関連した一連のツールがあります。
他のLVMコンポーネントと同様に、lvscanオプションはシステムをスキャンし、発見した論理ボリュームに関する最小限の情報を出力します:
- sudo lvscan
ACTIVE '/dev/LVMVolGroup/projects' [10.00 GiB] inherit
ACTIVE '/dev/LVMVolGroup/www' [5.00 GiB] inherit
ACTIVE '/dev/LVMVolGroup/db' [20.00 GiB] inherit
ACTIVE '/dev/LVMVolGroup/workspace' [254.99 GiB] inherit
より完全な情報のために、lvs コマンドはスクリプトで使用するのに柔軟で強力です:
- sudo lvs
LV VG Attr LSize Pool Origin Data% Meta% Move Log Cpy%Sync Convert
db LVMVolGroup -wi-ao---- 20.00g
projects LVMVolGroup -wi-ao---- 10.00g
workspace LVMVolGroup -wi-ao---- 254.99g
www LVMVolGroup -wi-ao---- 5.00g
ストライプの数と論理ボリュームのタイプを見つけるには、--segmentsオプションを使用します。
- sudo lvs --segments
LV VG Attr #Str Type SSize
db LVMVolGroup rwi-a-r--- 2 raid1 20.00g
mirrored_vol LVMVolGroup rwi-a-r--- 3 raid1 10.00g
test LVMVolGroup rwi-a-r--- 3 raid5 10.00g
test2 LVMVolGroup -wi-a----- 2 striped 10.00g
test3 LVMVolGroup rwi-a-r--- 2 raid1 10.00g
lvdisplayコマンドによって最も人間に読みやすい出力が生成されます。
-m フラグが追加されると、ツールは論理ボリュームがどのように分割され、分配されているかに関する情報も表示します。
- sudo lvdisplay -m
--- Logical volume ---
LV Path /dev/LVMVolGroup/projects
LV Name projects
VG Name LVMVolGroup
LV UUID IN4GZm-ePJU-zAAn-DRO3-1f2w-qSN8-ahisNK
LV Write Access read/write
LV Creation host, time lvmtest, 2016-09-09 21:00:03 +0000
LV Status available
# open 1
LV Size 10.00 GiB
Current LE 2560
Segments 1
Allocation inherit
Read ahead sectors auto
- currently set to 256
Block device 252:0
--- Segments ---
Logical extents 0 to 2559:
Type linear
Physical volume /dev/sda
Physical extents 0 to 2559
. . .
この例では、/dev/LVMVolGroup/projects 論理ボリュームは /dev/sda 物理ボリュームの中に完全に含まれています。この情報は、基盤となるデバイスを削除する必要があり、データを特定の場所に移動したい場合に役立ちます。
ステップ2 – LVMコンポーネントの作成または拡張
このセクションでは、物理ボリューム、ボリュームグループ、および論理ボリュームの作成と拡張方法について説明します。
生のストレージデバイスから物理ボリュームを作成する
LVMでストレージデバイスを使用するには、最初に物理ボリュームとしてマークする必要があります。これにより、LVMはボリュームグループ内でデバイスを使用できることが指定されます。
まず、lvmdiskscan コマンドを使用して、LVM がアクセスできるすべてのブロックデバイスを見つけます。
- sudo lvmdiskscan
/dev/sda [ 200.00 GiB]
/dev/sdb [ 100.00 GiB]
2 disks
2 partitions
0 LVM physical volume whole disks
0 LVM physical volumes
ここでは、LVMの物理ボリュームに変換するのに適したデバイスに注意してください。
警告: LVMで使用する予定のデバイスに重要なデータがすでに書き込まれていないことを必ず確認してください。これらのデバイスをLVM内で使用すると、現在の内容が上書きされます。サーバーに重要なデータがある場合は、進む前にバックアップを取ってください。
ストレージデバイスをLVM物理ボリュームとしてマークするには、pvcreateを使用します。一度に複数のデバイスを指定することができます:
- sudo pvcreate /dev/sda /dev/sdb
このコマンドは、すべてのターゲットデバイスにLVMヘッダーを書き込んで、それらをLVM物理ボリュームとしてマークします。
物理ボリュームから新しいボリュームグループを作成する
LVM物理ボリュームから新しいボリュームグループを作成するには、vgcreateコマンドを使用します。ボリュームグループ名を指定し、その後に少なくとも1つのLVM物理ボリュームを指定する必要があります:
- sudo vgcreate volume_group_name /dev/sda
この例では、単一の初期物理ボリュームを使用してボリュームグループを作成します。必要に応じて、作成時に複数の物理ボリュームを渡すことができます:
- sudo vgcreate volume_group_name /dev/sda /dev/sdb /dev/sdc
通常、サーバーごとに1つのボリュームグループだけが必要です。すべてのLVM管理ストレージはそのプールに追加でき、その後、論理ボリュームをそこから割り当てることができます。
1つ以上のボリュームグループを作成したい理由の1つは、異なるボリュームに異なる拡張サイズを使用する必要があると感じる場合です。通常、拡張サイズ(デフォルトサイズは4Mで、ほとんどの用途には十分です)を設定する必要はありませんが、必要な場合は、ボリュームグループの作成時に-sオプションを指定することで設定できます:
- suod vgcreate -s 8M volume_group_name /dev/sda
これにより、8Mの拡張サイズを持つ新しいボリュームグループが作成されます。
既存のボリュームグループに物理ボリュームを追加する
ボリュームグループを追加の物理ボリュームで拡張するには、vgextendコマンドを使用します。このコマンドは、ボリュームグループの後に追加する物理ボリュームを取ります。必要に応じて、複数のデバイスを一度に渡すことができます:
- sudo vgextend volume_group_name /dev/sdb
物理ボリュームはボリュームグループに追加され、ストレージプールの利用可能な容量が拡張されます。
サイズを指定して論理ボリュームを作成する
ボリュームグループストレージプールから論理ボリュームを作成するには、lvcreateコマンドを使用します。-Lオプションで論理ボリュームのサイズを指定し、次に-nオプションで名前を指定し、その後、スペースを割り当てるボリュームグループを渡します。
例えば、LVMVolGroup ボリュームグループから test という名前の 10G 論理ボリュームを作成するには、次のように記述します:
- sudo lvcreate -L 10G -n test LVMVolGroup
ボリュームグループにボリューム容量を収容するための十分な空きスペースがある場合、新しい論理ボリュームが作成されます。
残りの全ての空きスペースから論理ボリュームを作成する
ボリュームグループ内の残りの空きスペースを使用してボリュームを作成したい場合は、vgcreateコマンドを使用し、-nオプションで名前を指定して前のステップと同様にボリュームグループを渡します。サイズを渡す代わりに、-l 100%FREEオプションを使用して、ボリュームグループ内の残りのエクステントを使用して論理ボリュームを形成します。
- sudo lvcreate -l 100%FREE -n test2 LVMVolGroup
これにより、論理ボリュームの残りのスペースが使い切られるはずです。
高度なオプションを使用して論理ボリュームを作成する
論理ボリュームは、いくつかの高度なオプションを使って作成できます。考慮すべきオプションのいくつかは次のとおりです:
--type: これは論理ボリュームのタイプを指定し、論理ボリュームの割り当て方法を決定します。選択したトポロジーを正しく作成するために十分な基になる物理ボリュームがない場合、一部の利用可能なタイプは使用できません。一般的なタイプのいくつかは以下の通りです:
linear: デフォルトのタイプ。使用される基礎的な物理デバイスが複数ある場合、それらは逐次的に一つずつ追加されます。
ストライプ: RAID 0に似たストライプトポロジーは、データをチャンクに分割し、基盤の物理ボリュームにラウンドロビン方式で広げます。これによりパフォーマンスの向上が期待できますが、データの脆弱性が増す可能性があります。これには-iオプションと最低でも2つの物理ボリュームが必要です。raid1: ミラーリングRAID 1ボリュームを作成します。デフォルトでは、ミラーには2つのコピーがありますが、-mでさらに多くを指定することができます。これには最低2つの物理ボリュームが必要です。raid5: RAID 5 ボリュームを作成します。これには最低3つの物理ボリュームが必要です。raid6: RAID 6 ボリュームを作成します。これには最低4つの物理ボリュームが必要です。
例を示すために、まずストライプボリュームを作成します。この方法では、少なくとも2つのストライプを指定する必要があります。このトポロジーとストライプ数には、使用可能な容量を持つ2つの物理ボリュームが最低限必要です:
- sudo lvcreate --type striped -i 2 -L 10G -n striped_vol LVMVolGroup
ミラーボリュームを作成するには、raid1タイプを使用します。データセットが二つ以上必要な場合は、-mオプションを使用してください。この例では、-m 2を使用して合計で三つのデータセットを作成します。LVMはこれを一つの元のデータセットと二つのミラーとしてカウントします。これを成功させるには、少なくとも三つの物理ボリュームが必要です。
- sudo lvcreate --type raid1 -m 2 -L 20G -n mirrored_vol LVMVolGroup
ボリュームのスナップショットを作成するには、ボリュームグループではなく、スナップショットを取るオリジナルの論理ボリュームを提供する必要があります。スナップショットは最初はあまりスペースを取らないが、追跡している論理ボリュームに変更が加えられるとサイズが大きくなります。この手順中に使用されるサイズは、スナップショットが持つことができる最大サイズです。このサイズを超えて成長したスナップショットは壊れ、使用できなくなります。ただし、容量に近づいているスナップショットは拡張することができます。
- sudo lvcreate -s -L 10G -n snap_test LVMVolGroup/test
注意: スナップショットの時点に論理ボリュームを戻すには、lvconvert --mergeコマンドを使用してください。
- sudo lvconvert --merge LVMVolGroup/snap_test
これにより、スナップショットが取得されたときの状態にスナップショットの原点が戻されます。
論理ボリュームの機能を劇的に変更することができるいくつかのオプションがあります。
論理ボリュームのサイズを増やす
LVMの主な利点の一つは、論理ボリュームのプロビジョニングにおける柔軟性です。システムを停止することなく、ボリュームの数やサイズを即座に調整できます。
既存の論理ボリュームのサイズを増やすには、lvresize コマンドを使用します。-L フラグを使用して新しいサイズを指定します。また、+ サイズを追加することで相対サイズを使用することもできます。その場合、LVM は指定された量だけ論理ボリュームのサイズを増加させます。論理ボリュームで使用されているファイルシステムを自動的にサイズ変更するには、--resizefs フラグを渡します。
拡張する論理ボリュームの名前を正しく提供するには、ボリュームグループを指定し、その後にスラッシュ、そして論理ボリュームを続けて入力する必要があります。
- sudo lvresize -L +5G --resizefs LVMVolGroup/test
この例では、LVMVolGroup ボリュームグループの test 論理ボリュームの論理ボリュームとファイルシステムの両方が 5G 拡張されます。
ファイルシステムの拡張を手動で行いたい場合は、--resizefsオプションを取り外し、その後ファイルシステムのネイティブの拡張ユーティリティを使用してください。例えば、Ext4ファイルシステムの場合は、次のように記述します:
- sudo lvresize -L +5G LVMVolGroup/test
- sudo resize2fs /dev/LVMVolGroup/test
これは同じ結果を返します。
ステップ3 – LVMコンポーネントの削除またはダウンサイジング
容量の削減はデータ損失を引き起こす可能性があるため、利用可能な容量を縮小する手順、すなわちコンポーネントのサイズを減らすか、取り外すことは通常、少し手間がかかります。
論理ボリュームのサイズを減少させる
論理ボリュームを縮小するには、まずデータをバックアップする必要があります。これは利用可能な容量を減らすため、ミスがデータ損失につながる可能性があります。
準備ができたら、現在どれくらいのスペースが使用されているか確認してください:
- df -h
Filesystem Size Used Avail Use% Mounted on
. . .
/dev/mapper/LVMVolGroup-test 4.8G 521M 4.1G 12% /mnt/test
この例では、現在521Mを少し超えるスペースが使用されています。これを利用して、ボリュームをどのくらいのサイズに削減できるかを見積もるのに役立ててください。
拡張とは異なり、ファイルシステムの縮小は、アンマウントされているときに行う必要があります。まず、ルートディレクトリにいることを確認してください。
- cd ~
次に、ファイルシステムをアンマウントします:
- sudo umount /dev/LVMVolGroup/test
アンマウント後、すべてが正常に動作していることを確認するためにファイルシステムをチェックしてください。-tオプションでファイルシステムのタイプを指定します。ファイルシステムが表示されるときにチェックするには-fを使用します:
- sudo fsck -t ext4 -f /dev/LVMVolGroup/test
ファイルシステムを確認した後、ファイルシステムのネイティブツールを使用してファイルシステムのサイズを減らすことができます。Ext4ファイルシステムの場合、これはresize2fsコマンドになります。ファイルシステムの最終サイズを指定してください:
警告: ここで最も安全な選択肢は、現在の使用量よりもかなり大きな最終サイズを選択することです。データ損失を避けるための余裕を持たせ、バックアップが整っていることを確認してください。
- sudo resize2fs -p /dev/LVMVolGroup/test 3G
操作が完了したら、lvresizeコマンドに-Lフラグを付けて、同じサイズを指定して論理ボリュームのサイズを変更します。
- sudo lvresize -L 3G LVMVolGroup/test
データ損失の可能性について警告されています。準備ができたら、yを入力して続行してください。
論理ボリュームが縮小された後、ファイルシステムを再度確認してください:
- sudo fsck -t ext4 -f /dev/LVMVolGroup/test
すべてが正しく機能している場合は、通常のマウントコマンドを使用してファイルシステムを再マウントできます:
- sudo mount /dev/LVMVolGroup/test /mnt/test
論理ボリュームは適切なサイズに減少しているはずです。
論理ボリュームの削除
論理ボリュームが不要になった場合は、lvremove コマンドを使用して削除できます。
まず、現在マウントされている場合は論理ボリュームのマウントを解除します。
- cd ~
- sudo umount /dev/LVMVolGroup/test
その後、このコマンドを入力して論理ボリュームを削除します:
- sudo lvremove LVMVolGroup/test
手順を確認するように求められています。論理ボリュームを削除することに確信がある場合は、yを押してください。
ボリュームグループの削除
ボリュームグループ全体を削除するには、その中のすべての論理ボリュームを含めて、vgremoveコマンドを使用します。
ボリュームグループを削除する前に、前に説明した手順を使用して論理ボリュームを削除する必要があります。少なくとも、ボリュームグループが含んでいる論理ボリュームをアンマウントしていることを確認しなければなりません:
- sudo umount /dev/LVMVolGroup/www
- sudo umount /dev/LVMVolGroup/projects
- sudo umount /dev/LVMVolGroup/db
その後、ボリュームグループ名をvgremoveコマンドに渡すことで、全体のボリュームグループを削除できます。
- sudo vgremove LVMVolGroup
その後、ボリュームグループを削除するか確認するように求められます。まだ存在する論理ボリュームがある場合、それらを削除する前に個別の確認プロンプトが表示されます。
物理ボリュームの削除
LVM管理から物理ボリュームを削除するための手順は、そのデバイスが現在LVMによって使用されているかどうかによって異なります。
物理ボリュームが使用中の場合、デバイス上にある物理エクステントを別の場所に移動する必要があります。これは、物理エクステントを処理するために、ボリュームグループに十分な他の物理ボリュームが必要です。より複雑な論理ボリュームタイプを使用している場合、トポロジーを収容するために十分な空きスペースがあっても、追加の物理ボリュームが必要になることがあります。
ボリュームグループ内に物理エクステントを処理するのに十分な物理ボリュームがある場合、削除したい物理ボリュームからそれらを移動するには、以下を実行します:
- sudo pvmove /dev/sda
このプロセスは、ボリュームのサイズや転送するデータの量に応じて時間がかかることがあります。
一旦エクステントがピアボリュームに移動したら、物理ボリュームをボリュームグループから削除できます。
- sudo vgreduce LVMVolGroup /dev/sda
これにより、空いた物理ボリュームがボリュームグループから削除されます。これが完了した後、ストレージデバイスから物理ボリュームマーカーを削除できます:
- sudo pvremove /dev/sda
削除されたストレージデバイスを他の目的に使用するか、システムから完全に取り除くことができます。
結論
これで、LVMを使用してUbuntu 18.04でストレージデバイスを管理する方法を理解しました。また、既存のLVMコンポーネントの状態に関する情報を取得する方法、LVMを使用してストレージシステムを構成する方法、およびニーズに合わせてボリュームを変更する方法も知っています。これらの概念を安全な環境で試して、どのように組み合わさるかをよりよく理解してください。
