Linuxでストレージデバイスの基本的な管理タスクを実行する方法
日本語のネイティブな言い回しで以下を言い換えてください(1つだけのオプションで構いません):
イントロダクション
Linuxでストレージを管理するための多くのツールがありますが、日常のメンテナンスと管理に実際に使用されるのはほんの一部です。このガイドでは、マウントポイント、ストレージデバイス、ファイルシステムの管理に最もよく使用されるユーティリティのいくつかを紹介します。
その他の資源
このガイドでは、Linuxシステムでストレージデバイスを初めて使用するための準備方法について説明しません。もしまだストレージを設定していない場合、このLinuxにおけるブロックデバイスのパーティショニングとフォーマットに関するガイドが、未設定のストレージデバイスの準備に役立ちます。
ストレージに関する用語について、より詳しく知りたい場合は、ストレージの用語についてのこの記事を読んでみてください。
dfを使用してストレージ容量と使用量を見つける。
よくストレージに関する最も重要な情報は、接続されたストレージデバイスの容量と現在の利用状況です。
利用可能なストレージ容量全体を確認し、ドライブの現在の利用状況を確認するには、dfユーティリティを使用します。デフォルトでは、これは1Kブロックで測定値を出力しますが、これは常に便利ではありません。人が読みやすい単位で出力するには、-hフラグを追加してください。
- df -h
Filesystem Size Used Avail Use% Mounted on udev 238M 0 238M 0% /dev tmpfs 49M 624K 49M 2% /run /dev/vda1 20G 1.1G 18G 6% / tmpfs 245M 0 245M 0% /dev/shm tmpfs 5.0M 0 5.0M 0% /run/lock tmpfs 245M 0 245M 0% /sys/fs/cgroup tmpfs 49M 0 49M 0% /run/user/1000 /dev/sda1 99G 60M 94G 1% /mnt/data
/dev/vda1パーティションは、/としてマウントされ、使用率は6%で、利用可能なスペースは18Gです。一方、/mnt/dataにマウントされた/dev/sda1パーティションは空で、利用可能なスペースは94Gです。他のエントリはtmpfsまたはdevtmpfsファイルシステムを使用しており、それは永続的なストレージとして使用される揮発性メモリです。これらのエントリを除外するには、次のように入力してください:
- df -h -x tmpfs -x devtmpfs
Filesystem Size Used Avail Use% Mounted on /dev/vda1 20G 1.1G 18G 6% / /dev/sda1 99G 60M 94G 1% /mnt/data
この出力は、いくつかの擬似デバイスや特殊デバイスを削除することにより、現在のディスク利用状況をより重点的に表示します。
lsblkを使用してブロックデバイスに関する情報を見つける
ブロックデバイスとは、特定サイズのブロックで読み取りまたは書き込みを行うストレージデバイスの総称です。この用語はハードディスクドライブ(HDD)、ソリッドステートドライブ(SSD)など、ほぼすべての不揮発性ストレージに適用されます。ブロックデバイスは、ファイルシステムが書き込まれる物理デバイスです。ファイルシステムは、データとファイルの格納方法を規定します。
lsblkユーティリティは、ブロックデバイスに関する情報を表示するために使用することができます。ユーティリティの具体的な機能はインストールされているバージョンに依存しますが、一般的に、lsblkコマンドはドライブ自体の情報、パーティショニング情報、および書き込まれているファイルシステムに関する情報を表示するために使用することができます。
引数がない場合、lsblkコマンドはデバイス名、デバイスに関連付けられたメジャーナンバーやマイナーナンバー(Linuxカーネルがドライバーやデバイスを追跡するために使用する)、ドライブが取り外し可能かどうか、サイズ、読み取り専用でマウントされているかどうか、タイプ(ディスクまたはパーティション)、マウントポイントを表示します。一部のシステムでは正しく表示するためにsudoが必要です。
- sudo lsblk
NAME MAJ:MIN RM SIZE RO TYPE MOUNTPOINT sda 8:0 0 100G 0 disk vda 253:0 0 20G 0 disk └─vda1 253:1 0 20G 0 part /
表示される出力の中で、通常最も重要な部分は名前です。名前は/devの下のデバイス名を指します。また、サイズ、タイプ、マウントポイントも重要です。ここでは、1つのディスク(/dev/vda)と1つのパーティション(/dev/vda1)が/パーティションとして使用されていること、そしてパーティションされていない別のディスク(/dev/sda)があることが分かります。
ディスクとパーティション管理に関連する情報をより取得するために、一部のバージョンでは–fsフラグを使用することができます。
- sudo lsblk –fs
NAME FSTYPE LABEL UUID MOUNTPOINT sda vda └─vda1 ext4 DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /
もしシステム上で–fsフラグが利用できない場合、-oフラグを使用して特定の出力を要求することで、出力を手動で複製することができます。 NAME、FSTYPE、LABEL、UUID、MOUNTPOINTを使用して同じ情報を取得することができます。
ディスクのトポロジについての情報を入手するには、次のように入力します:
- sudo lsblk -t
NAME ALIGNMENT MIN-IO OPT-IO PHY-SEC LOG-SEC ROTA SCHED RQ-SIZE RA WSAME sda 0 512 0 512 512 1 deadline 128 128 2G vda 0 512 0 512 512 1 128 128 0B └─vda1 0 512 0 512 512 1 128 128 0B
ディスクとパーティションに関連する特性を表示するための他のショートカットがたくさんあります。全ての利用可能な列を -O フラグで出力することもできますし、-o フラグで表示するフィールドを指定してカスタマイズすることもできます。利用可能な列をリストするためには -h フラグを使用できます。
- lsblk -h
. . . Available columns (for –output): NAME device name KNAME internal kernel device name . . . SUBSYSTEMS de-duplicated chain of subsystems REV device revision VENDOR device vendor For more details see lsblk(8).
ファイルシステムマウントとの作業
新しいディスクを使用する前には、通常、パーティションを作成し、ファイルシステムでフォーマットし、ドライブまたはパーティションをマウントする必要があります。パーティションの作成とフォーマットは通常、一度だけ行われます。Linuxでドライブのパーティションとフォーマットの方法については、『Linuxにおけるストレージデバイスのパーティションとフォーマットの方法』で詳細な情報を見つけることができます。
マウントはより頻繁に行うことができる作業です。ファイルシステムをマウントすることで、選択したマウントポイントでサーバーから利用できるようになります。マウントポイントとは、新しいファイルシステムがアクセスできるディレクトリのことです。
マウントの管理には主に2つの対応するコマンド、マウントとアンマウントが使用されます。マウントコマンドはファイルシステムを現在のファイルツリーに接続するために使用されます。Linuxシステムでは、物理デバイスの数に関係なく、システム全体で単一の統合ファイル階層が使用されます。アンマウントコマンド(注意:umountです、unmountではありません)は、ファイルシステムをアンマウントするために使用されます。さらに、現在マウントされているファイルシステムの状態に関する情報を収集するのにfindmntコマンドが便利です。
「mount」コマンドを使用する
マウントを使用する最も直接的な方法は、フォーマットされたデバイスまたはパーティションと、それが接続されるマウントポイントを指定することです。
- sudo mount /dev/sda1 /mnt
新しいファイルシステムが接続されるファイル階層の場所を指定する最終パラメータであるマウントポイントは、ほとんどの場合、空のディレクトリであるべきです。
通常、マウントする際はより具体的なオプションを選択することが望ましいです。マウントはファイルシステムの種類を推測しようとしますが、ほとんどの場合、-tオプションで明示的にファイルシステムの種類を指定する方が良いアイデアです。Ext4ファイルシステムの場合、これは以下のようになります。
- sudo mount -t ext4 /dev/sda1 /mnt
ファイルシステムのマウント方法に影響を与える他の多くのオプションがあります。マウントマニュアルの「ファイルシステム独立マウントオプション」セクションには一般的なマウントオプションが記載されています。
他のオプションを-oフラグで渡してください。例えば、デフォルトのオプション(rw、suid、dev、exec、auto、nouser、async)でパーティションをマウントする場合は、-o defaultsと入力してください。読み書き権限を上書きして読み取り専用としてマウントする必要がある場合は、後のオプションとしてroを追加することができます。これにより、defaultsオプションのrwが上書きされます。
- sudo mount -t ext4 -o defaults,ro /dev/sda1 /mnt
/etc/fstab ファイルで指定されたすべてのファイルシステムをマウントするには、-a オプションを指定することができます。
- sudo mount -a
ファイルシステムのマウントオプションをリストする。
特定のマウントで使用されるマウントオプションを表示するには、findmntコマンドを使用します。例えば、上記の読み取り専用マウントをfindmntで表示すると、以下のようになります。
- findmnt /mnt
TARGET SOURCE FSTYPE OPTIONS /mnt /dev/sda1 ext4 ro,relatime,data=ordered
複数のオプションを試行した後で、最終的に好みのセットを見つけた場合には、これは役に立つかもしれません。findmntを使用して、どのオプションが利用されているかを見つけることで、将来のマウントのために/etc/fstabファイルに追加する適切な内容がわかります。
ファイルシステムのアンマウント
指定されたファイルシステムをアンマウントするためには、umountコマンドが使用されます。再度言いますが、これはumountというコマンドでありunmountではありません。
コマンドの一般的な形式は、現在マウントされているファイルシステムのマウントポイントまたはデバイスの名前を指定することです。マウントポイント上のファイルを使用していないこと、およびマウントポイント内でアプリケーション(現在のシェルを含む)が動作していないことを確認してください。
- cd ~
- sudo umount /mnt
通常、デフォルトのアンマウント動作に追加するオプションはほとんどありません。
結論
このリストは決して網羅的ではありませんが、これらのユーティリティはほとんどの日常的なシステム管理タスクに必要なものをカバーしています。いくつかのツールを学ぶことで、サーバー上のストレージデバイスを操作することができます。