Linuxでストレージデバイスの基本的な管理タスクを実行する方法

前書き

Linuxでストレージを管理するために利用できる多くのツールがあります。 ただし、日常のメンテナンスと管理に使用されるのはほんの一握りです。 このガイドでは、マウントポイント、ストレージデバイス、およびファイルシステムを管理するために最も一般的に使用されるユーティリティをいくつか取り上げます。

その他の資料

このガイドでは、Linuxシステムで最初に使用するストレージデバイスを準備する方法については説明しません。 Linuxでのブロックデバイスのパーティション分割とフォーマットに関するガイドは、rawストレージの準備に役立ちますストレージをまだセットアップしていない場合はデバイス。

ストレージの説明に使用される用語の詳細については、https://www.digitalocean.com/community/tutorials/an-introduction-to-storage-terminology-and-concepts-in-の記事をご覧ください。 linux [ストレージ用語]。

dfを使用したスト​​レージ容量と使用量の検索

多くの場合、システム上のストレージについて知りたい最も重要な情報は、接続されたストレージデバイスの容量と現在の使用率です。

合計で使用可能なストレージ容量を確認し、ドライブの現在の使用率を確認するには、* df *ユーティリティを使用します。 デフォルトでは、これは1Kブロックで測定値を出力しますが、通常はあまり有用ではありません。 `+ -h +`フラグを人間が読める単位で出力に追加します:

df -h
OutputFilesystem      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の空き容量がありますが、 `+ / dev / sda1 +`パーティションはマウントされています+ / mnt / data `は空で、94Gの空き容量があります。 他のエントリは、 ` tmpfs `または ` devtmpfs +`ファイルシステムを使用します。これは、永続的なストレージであるかのように使用される揮発性メモリです。 次のように入力して、これらのエントリを除外できます。

df -h -x tmpfs -x devtmpfs
OutputFilesystem      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
OutputNAME   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
OutputNAME   FSTYPE LABEL  UUID                                 MOUNTPOINT
sda
vda
└─vda1 ext4   DOROOT c154916c-06ea-4268-819d-c0e36750c1cd /

お使いのバージョンで `-fs +`フラグが利用できない場合、 ` -o `フラグを使用して特定の出力を要求することにより、出力を手動で複製できます。 これと同じ情報を取得するには、 ` -o NAME、FSTYPE、LABEL、UUID、MOUNTPOINT +`を使用できます。

ディスクトポロジに関する情報を取得するには、次のように入力します。

sudo lsblk -t
OutputNAME   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
Output. . .

Available columns (for --output):
         device name
        internal kernel device name

      . . .

   de-duplicated chain of subsystems
          device revision
       device vendor

For more details see lsblk(8).

ファイルシステムマウントの操作

新しいディスクを使用するには、通常、パーティションを作成し、ファイルシステムでフォーマットしてから、ドライブまたはパーティションをマウントする必要があります。 パーティションとフォーマットは通常1回限りの手順であるため、ここでは説明しません。 前述のとおり、https://www.digitalocean.com/community/tutorials/how-to-partition-and-format-storage-devices-inでLinuxでドライブをパーティション分割およびフォーマットする方法の詳細を見つけることができます-linux [この記事]。

一方、マウントは、より頻繁に管理できるものです。 ファイルシステムをマウントすると、選択したマウントポイントでサーバーが使用できるようになります。 *マウントポイント*は、新しいファイルシステムにアクセスできるディレクトリです。

2つの補完的なコマンドが主にマウントの管理に使用されます: + mount +`および `+ umount +。 `+ mount `コマンドは、ファイルシステムを現在のファイルツリーにアタッチするために使用されます。 Linuxシステムでは、構成されている物理デバイスの数に関係なく、単一の統合ファイル階層がシステム全体に使用されます。 ファイルシステムをアンマウントするには、「 umount 」コマンド(注:「 unmount 」ではなく「 umount 」です)を使用します。 また、 ` findmnt +`コマンドは、マウントされたファイルシステムの現在の状態に関する情報を収集するのに役立ちます。

mountコマンドの使用

`+ mount +`を使用する最も基本的な方法は、フォーマットされたデバイスまたはパーティションと、それが接続されるマウントポイントを渡すことです。

sudo mount /dev/sda1 /mnt

マウントポイントは、ファイル階層のどこに新しいファイルシステムをアタッチするかを指定する最終パラメーターであり、ほとんどの場合、空のディレクトリである必要があります。

通常、マウントする際により具体的なオプションを選択する必要があります。 `+ mount `はファイルシステムの種類を推測しようとしますが、ほとんどの場合、 ` -t +`オプションを使用してファイルシステムの種類を渡すことをお勧めします。 Ext4ファイルシステムの場合、これは次のようになります。

sudo mount -t ext4 /dev/sda1 /mnt

ファイルシステムのマウント方法に影響を与える他の多くのオプションがあります。 `+ man mount +`の* FILESYSTEM INDEPENDENT MOUNT OPTIONS セクションにある一般的なマウントオプションがあります。 通常、ファイルシステムには、同じマニュアルページのファイルシステム依存オプションの FILESYSTEM SPECIFIC MOUNT OPTIONS *ヘッダーの下にセクションがあります。

`+ -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
OutputTARGET SOURCE    FSTYPE OPTIONS
/mnt   /dev/sda1 ext4   ro,relatime,data=ordered

これは、複数のオプションを試していて、好きなセットを最終的に発見した場合に非常に便利です。 `+ findmnt `で使用しているオプションを見つけることができるので、将来のマウントのために ` / etc / fstab +`ファイルに追加するのに適切なものを知ることができます。

ファイルシステムのアンマウント

`+ umount `コマンドは、特定のファイルシステムをアンマウントするために使用されます。 繰り返しますが、これは ` unmount `ではなく ` umount +`です。

このコマンドの一般的な形式は、現在マウントされているファイルシステムのマウントポイントまたはデバイスに名前を付けることです。 マウントポイントでファイルを使用していないこと、およびマウントポイント内で動作しているアプリケーション(現在のシェルを含む)がないことを確認してください。

cd ~
sudo umount /mnt

大多数のユーザーにとって、デフォルトのアンマウント動作以外は何も必要ありません。

結論

このリストは決して包括的なものではありませんが、これらのユーティリティは、毎日のシステム管理タスクに必要なもののほとんどをカバーするはずです。 いくつかのツールを学習することにより、サーバー上のストレージデバイスを簡単に処理できます。