GNU/Linux >> Linux の 問題 >  >> Linux

Linuxサーバーでのブロックストレージの構成

はじめに

Secure Block Storage(SBS)ボリュームは、使いやすく、冗長性が高く、スケーラブルで、Atlantic.Netクラウドサーバーに接続できる安全なブロックストレージです。

ファイル、データベース、アプリケーション、およびバックアップストレージのニーズにSecureBlockStorageボリュームを使用できます。 99.999%の可用性を実現するように設計されたSBSは、コンポーネントの障害からデータを保護するために、複数回自動的に複製されます。ストレージをオンザフライで増やし、同じリージョン内のクラウドサーバー間でSBSボリュームを移動できます。

このガイドでは、LinuxサーバーでSBSボリュームを作成、構成、フォーマット、および管理する方法について説明し、SSH経由でサーバーに既に接続していることを前提としています。

このガイドで学習する内容:
ブロックストレージボリュームの作成
初期使用のためのブロックストレージボリュームの構成
ブロックストレージボリュームのデタッチ
以前に構成されたブロックストレージボリュームの接続
ブロックストレージボリュームのサイズ変更
ブロックストレージボリュームの削除
SELINUXを実行する場合に必要な追加の手順

ボリュームの作成

ステップ1:Atlantic.Netクラウドコントロールパネルでボリュームを作成する

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Add Volume" button. Next select the volume size, name, location, and server you wish to attach the Volume to.

After the Volume is done creating, you should see that the Volume is attached to the server you chose.

初期使用のためのボリュームの構成

Atlantic.Netクラウドコントロールパネルでボリュームを作成した後、以下の手順に従って、Linuxサーバーでボリュームを初めて構成します。

ステップ1:ボリュームを見つける

Linuxサーバーでボリュームを見つける最も簡単な方法は、「/ dev / disk /by-id/」ディレクトリで「ls」コマンドを実行することです。 「/dev/ disk / by-id /」ディレクトリは、再起動後またはボリュームを別のサーバーに接続したときに変更されない、SCSI識別子に基づく永続的なデバイス名を提供します。すべてのSBSボリュームは、SCSI識別子「scsi-0AN_Volume_」で始まり、その後にボリュームに付けた名前が続きます。したがって、ボリュームに「Vol1」という名前を付けた場合、ボリュームへのパスは「/ dev / disk / by-id/scsi-0AN_Volume_Vol1」になります

[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_*
/dev/disk/by-id/scsi-0AN_Volume_Vol1

ステップ2:ボリュームを分割する

ボリュームのパーティション分割には、「gdisk」などのGPTパーティション分割をサポートする最新のパーティション分割ツールを使用することを強くお勧めします。 GPT形式のボリュームは、「fdisk」などの古いパーティションツールよりも大きなサイズをサポートします。

まず、gdiskをインストールしましょう
注:gdiskをインストールするには、オペレーティングシステムのパッケージマネージャーを使用する必要があります(つまり、UbuntuまたはDebian:apt-get install gdisk、CentOSまたはFedora:yum install gdiskなど)。

apt-get install gdisk

ボリュームのパーティション分割を開始するには、ボリュームのパスを使用して「gdisk」プログラムを開始します。

[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1

プログラムが起動し、ボリュームを分析し、さらにコマンドを入力するためのプロンプトを表示します

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: not present
  BSD: not present
  APM: not present
  GPT: not present

Creating new GPT entries.

Command (? for help):

次に、コマンド「n」を入力し、Enterキーを押してすべてのデフォルトを受け入れることにより、ボリューム上に新しい単一パーティションを作成します

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-2097151966, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-2097151966, default = 2097151966) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

Command (? for help):

これで、「p」コマンドを入力して、ディスクに書き込む前にパーティションテーブル情報を出力できます

Command (? for help): p
Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 2097152000 sectors, 1000.0 GiB
Logical sector size: 512 bytes
Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 2097151966
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      2097151966   1000.0 GiB  8300  Linux filesystem

Command (? for help):

上記では、ボリューム上のすべてのスペースを利用する単一のパーティションをメモリ内に作成したことがわかります。次に、「w」コマンドを使用して、パーティションテーブルをボリュームに書き込む(保存する)必要があります。プロンプトが表示されたら、「Y」と答えて続行します。

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/disk/by-id/scsi-0AN_Volume_Vol1.
The operation has completed successfully.

ステップ3:ボリューム上にファイルシステムを作成する

次に、ボリュームにデータを保存するためのファイルシステムを作成する必要があります。 Linuxで最も一般的なファイルシステムはext4とxfsです。このガイドでは、ext4を使用します。

作成したパーティションで「mkfs.ext4」プログラムを使用してext4ファイルシステムを作成しましょう。コマンドを呼び出すときに、ボリュームへのパスに「-part1」を追加するだけであることに注意してください。

[email protected]:~# mkfs.ext4 /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 
mke2fs 1.42.13 (17-May-2015)
Discarding device blocks: done                            
Creating filesystem with 262143739 4k blocks and 65536000 inodes
Filesystem UUID: 60bd3dd1-cb39-4a64-a015-771ae50bcc16
Superblock backups stored on blocks: 
        32768, 98304, 163840, 229376, 294912, 819200, 884736, 1605632, 2654208, 
        4096000, 7962624, 11239424, 20480000, 23887872, 71663616, 78675968, 
        102400000, 214990848

Allocating group tables: done                            
Writing inode tables: done                            
Creating journal (32768 blocks): done
Writing superblocks and filesystem accounting information: done

ステップ4:ボリュームをマウントする

ボリュームの使用を開始する前の最後のステップは、ボリュームをディレクトリにマウントすることです。

ディレクトリを作成しましょう

[email protected]:~# mkdir -p /mnt/Vol1

次に、mountコマンドを使用してボリュームパーティションをディレクトリにマウントします

[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/

これで、ボリュームがマウントされ、使用できる状態になったことを確認できます

[email protected]:~# df -h /mnt/Vol1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       985G   72M  935G   1% /mnt/Vol1

オプション:再起動後にボリュームを自動的にマウントするには、/ etc/fstabファイルにエントリを追加する必要があります

echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab

これで、ボリュームを使用する準備が整いました。

クラウドサーバーからのボリュームのデタッチ

Cloud Serverでボリュームを使用する必要がなくなった場合は、Atlantic.Net Cloudコントロールパネルでデタッチリクエストを発行する前に、必ずCloudServerでボリュームをアンマウントする必要があります。

ステップ1:ボリュームをアンマウントする

まず、ボリュームがマウントされているかどうかを確認する必要があります。これを行うには、リストブロックコマンド「lsblk」を「mountpoint」フラグとボリュームへのパスとともに使用します。
注:ボリュームへのパスは常に「/ dev / disk /by-id/」であることに注意してください。 scsi-0AN_Volume_」の後に、ボリュームに付けた名前が続きます。以下の例では、ボリュームの名前は「Vol1」です

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT

/mnt/Vol1

出力は、ボリュームが「/ mnt/Vol1」にマウントされていることを示しています。 「マウントポイント」の下に何も表示されない場合は、ボリュームがマウントされていないため、以下の手順3にスキップできます。

これで、「umount」コマンドを使用してボリュームをアンマウントできます

[email protected]:~# umount /mnt/Vol1/

また、「mountpoint」フラグとボリュームへのパスを指定して「lsblk」コマンドを実行することで、ボリュームがマウントされていないことを確認できます。

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT


これで、Atlantic.Netコントロールパネルからデタッチコマンドを発行できます

ステップ3:クラウドサーバーからボリュームを切り離します

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Detach" button next to the Volume you wish to detach.

In the pop-up window, confirm you wish to detach the Volume from the Cloud Server by clicking the "Detach" button.

以前に構成したボリュームをクラウドサーバーに接続する

以前にクラウドサーバーでボリュームを構成し、それをクラウドサーバーから切り離して、同じまたは他のクラウドサーバーに接続する場合は、以下の手順に従ってください。

ステップ1:ボリュームを目的のクラウドサーバーに接続します

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Attach" button next to the Volume you wish to attach.

In the pop-up window, select the server you wish to attach the volume to.

After the Volume is done attaching, you should see that the Volume is attached to the server you chose.

ステップ2:ボリュームを見つける

Linuxサーバーでボリュームを見つける最も簡単な方法は、「/ dev / disk /by-id/」ディレクトリで「ls」コマンドを実行することです。 「/dev/ disk / by-id /」ディレクトリは、再起動後またはボリュームを別のサーバーに接続したときに変更されない、SCSI識別子に基づく永続的なデバイス名を提供します。すべてのSBSボリュームは、SCSI識別子「scsi-0AN_Volume_」で始まり、その後にボリュームに付けた名前が続きます。したがって、ボリュームに「Vol1」という名前を付けた場合、ボリュームへのパスは「/ dev / disk / by-id/scsi-0AN_Volume_Vol1」になります

[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_*
/dev/disk/by-id/scsi-0AN_Volume_Vol1  /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1

ステップ3:ボリュームをマウントする

ボリュームの使用を開始する前の最後のステップは、ボリュームをディレクトリにマウントすることです。

ディレクトリを作成しましょう

[email protected]:~# mkdir -p /mnt/Vol1

次に、mountコマンドを使用してボリュームパーティションをディレクトリにマウントします

[email protected]:~# mount -o discard,defaults /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1/

これで、ボリュームがマウントされ、使用できる状態になったことを確認できます

[email protected]:~# df -h /mnt/Vol1
Filesystem      Size  Used Avail Use% Mounted on
/dev/sdb1       985G   72M  935G   1% /mnt/Vol1

オプション:再起動後にボリュームを自動的にマウントするには、/ etc/fstabファイルにエントリを追加する必要があります

echo '/dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 /mnt/Vol1 ext4 defaults,nofail,discard 0 0' | tee -a /etc/fstab

これで、ボリュームを使用する準備が整いました。

ボリュームのサイズ変更

スペースが不足していますか?ボリュームのストレージサイズを拡張する場合は、以下の手順に従ってください。

ステップ1:Atlantic.Netクラウドコントロールパネルでボリュームのサイズを変更します

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Resize" button next to the Volume you wish to resize to a larger size.

In the pop-up window,  select the size you wish to resize the Volume to and then press the "Resize" button.

これで、コントロールパネルでボリュームのサイズが変更されたことがわかります

ステップ2:ボリュームを見つける

Linuxサーバーでボリュームを見つける最も簡単な方法は、「/ dev / disk /by-id/」ディレクトリで「ls」コマンドを実行することです。 「/dev/ disk / by-id /」ディレクトリは、再起動後またはボリュームを別のサーバーに接続したときに変更されない、SCSI識別子に基づく永続的なデバイス名を提供します。すべてのSBSボリュームは、SCSI識別子「scsi-0AN_Volume_」で始まり、その後にボリュームに付けた名前が続きます。したがって、ボリュームに「Vol1」という名前を付けた場合、ボリュームへのパスは「/ dev / disk / by-id/scsi-0AN_Volume_Vol1」になります

[email protected]:~# ls /dev/disk/by-id/scsi-0AN_Volume_*
/dev/disk/by-id/scsi-0AN_Volume_Vol1  /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1

ステップ3:パーティション情報をバックアップする

追加のスペースを使用するためにボリュームのパーティションのサイズを変更する前に、「gdisk」コマンドを使用して既存のパーティションテーブルのバックアップを作成します

プロセスを開始するには、ボリュームのパスを使用して「gdisk」プログラムを開始します。

[email protected]:~# gdisk /dev/disk/by-id/scsi-0AN_Volume_Vol1

プログラムが起動し、ボリュームを分析し、さらにコマンドを入力するためのプロンプトを表示します

GPT fdisk (gdisk) version 1.0.1

Partition table scan:
  MBR: protective
  BSD: not present
  APM: not present
  GPT: present

Found valid GPT with protective MBR; using GPT.

Command (? for help):

次に、「b」コマンドを入力して、パーティションテーブルのバックアップを作成し、バックアップファイルの名前を指定します。

Command (? for help): b
Enter backup filename to save: partition_table.backup
The operation has completed successfully.

Command (? for help):

次に、パーティションテーブルのバックアップデータ構造を再配置する必要があります。ボリュームのサイズを変更したため、これを行う必要があります。

コマンド「x」を使用してエキスパートモードに入ります

Command (? for help): x

次に、コマンド「e」

を使用してバックアップデータ構造を再配置します。
Expert command (? for help): e
Relocating backup data structures to the end of the disk

コマンド「m」を使用して通常モードに戻ります

Expert command (? for help): m

ステップ3:ボリューム上のパーティションのサイズを変更します

パーティションのサイズを変更する前に、パーティションテーブルの情報を確認しましょう

Command (? for help): p
Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 8388608000 sectors, 3.9 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8388607966
Partitions will be aligned on 2048-sector boundaries
Total free space is 6291458014 sectors (2.9 TiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      2097151966   1000.0 GiB  8300  Linux filesystem

上記では、パーティションのサイズがまだ変更されておらず、ボリュームにパーティションが1つしかないことがわかります。

次に、既存のパーティション情報を削除し、ボリュームが提供する新しいより大きなサイズで再作成することにより、既存のパーティション情報を置き換えます。

まず、「d」コマンドを使用してパーティション情報を削除します

Command (? for help): d
Using 1

次に、「n」コマンドを使用してパーティションを再度作成し、Enterキーを押してすべてのデフォルトを受け入れます。これにより、以前と同じように単一のパーティションが作成されるため、データが保持され、パーティションにより多くの利用可能なスペースが提供されます。

Command (? for help): n
Partition number (1-128, default 1): 
First sector (34-8388607966, default = 2048) or {+-}size{KMGTP}: 
Last sector (2048-8388607966, default = 8388607966) or {+-}size{KMGTP}: 
Current type is 'Linux filesystem'
Hex code or GUID (L to show codes, Enter = 8300): 
Changed type of partition to 'Linux filesystem'

次に、パーティションテーブル情報を再度表示できます:

Command (? for help): p
Disk /dev/disk/by-id/scsi-0AN_Volume_Vol1: 8388608000 sectors, 3.9 TiB
Logical sector size: 512 bytes
Disk identifier (GUID): ECCD068D-408F-43CA-AA2F-15F968E62F7D
Partition table holds up to 128 entries
First usable sector is 34, last usable sector is 8388607966
Partitions will be aligned on 2048-sector boundaries
Total free space is 2014 sectors (1007.0 KiB)

Number  Start (sector)    End (sector)  Size       Code  Name
   1            2048      8388607966   3.9 TiB     8300  Linux filesystem

上記では、パーティションのサイズが追加のスペースを反映していることがわかります。

次に、「w」コマンドを使用して、パーティションテーブルをボリュームに書き込む(保存する)必要があります。プロンプトが表示されたら、「Y」と答えて続行します。

Command (? for help): w

Final checks complete. About to write GPT data. THIS WILL OVERWRITE EXISTING
PARTITIONS!!

Do you want to proceed? (Y/N): Y
OK; writing new GUID partition table (GPT) to /dev/disk/by-id/scsi-0AN_Volume_Vol1.
Warning: The kernel is still using the old partition table.
The new table will be used at the next reboot or after you
run partprobe(8) or kpartx(8)
The operation has completed successfully.

ステップ4:パーティションの変更をLinuxに通知する

Linuxにパーティションの変更を通知するために使用する最も簡単なツールは、「partedpackage」の一部である「partprobe」です

partedをインストールする
注:partedをインストールするには、オペレーティングシステムのパッケージマネージャーを使用する必要があります(つまり、UbuntuまたはDebian:apt-get install parted、CentOSまたはFedora:yum install partedなど)。

apt-get install parted

「parted」がインストールされると、デバイスへのパスを使用してpartprobeコマンドを実行できます

[email protected]:~# partprobe /dev/disk/by-id/scsi-0AN_Volume_Vol1

Linuxは、パーティションの変更について説明します

ステップ5:ファイルシステムのサイズを変更する

ボリュームはext4ファイルシステムで構成されているため、デバイスのサイズを変更するには、デバイスパーティションへのパスを指定して「resize2fs」コマンドを使用する必要があります。これは、ボリュームがマウントされているときに実行できます。
注:CentOS6またはDebian7のマウントされたボリュームでresize2fsコマンドを使用すると、完了するまでに非常に長い時間がかかる場合があります。続行する前に、ボリュームをアンマウントするオペレーティングシステムのバージョンのいずれかを使用している場合は、お勧めします。
注:ボリュームがXFSファイルシステムを使用している場合は、「xfs_growfs / path / to/mountpoint」を使用します。ファイルシステムのサイズを変更します。

[email protected]:~# resize2fs /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 
resize2fs 1.42.13 (17-May-2015)
Filesystem at /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 is mounted on /mnt/Vol1; on-line resizing required
old_desc_blocks = 63, new_desc_blocks = 250
The filesystem on /dev/disk/by-id/scsi-0AN_Volume_Vol1-part1 is now 1048575739 (4k) blocks long.

これで、追加のスペースを使用する準備が整いました。

ボリュームの削除

ボリュームが不要になったら、以下の手順に従ってください。

注:Atlantic.Netクラウドコントロールパネルで削除リクエストを発行する前に、必ずクラウドサーバーでボリュームをアンマウントする必要があります。

ステップ1:ボリュームをアンマウントする

まず、ボリュームがマウントされているかどうかを確認する必要があります。これを行うには、リストブロックコマンド「lsblk」を「mountpoint」フラグとボリュームへのパスとともに使用します。
注:ボリュームへのパスは常に「/ dev / disk /by-id/」であることに注意してください。 scsi-0AN_Volume_」の後に、ボリュームに付けた名前が続きます。以下の例では、ボリュームの名前は「Vol1」です

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT

/mnt/Vol1

出力は、ボリュームが「/ mnt/Vol1」にマウントされていることを示しています。 「マウントポイント」の下に何も表示されない場合は、ボリュームがマウントされていないため、以下の手順3にスキップできます。

これで、「umount」コマンドを使用してボリュームをアンマウントできます

[email protected]:~# umount /mnt/Vol1/

また、「mountpoint」フラグとボリュームへのパスを指定して「lsblk」コマンドを実行することで、ボリュームがマウントされていないことを確認できます。

[email protected]:~# lsblk -o mountpoint /dev/disk/by-id/scsi-0AN_Volume_Vol1
MOUNTPOINT


ステップ2:Atlantic.Netコントロールパネルでボリュームを削除します

In the Atlantic.Net Control Panel, click on "Block Storage", then click the "Delete" button next to the Volume you wish to delete.

In the pop-up window, carefully read the entire message, and click the "Delete" button to remove the Volume.

ボリュームは削除され、今後は課金されなくなります。

SELINUXを実行する場合に必要な追加の手順

SELINUXは、ほとんどのLinuxディストリビューションに組み込まれているセキュリティ拡張機能です。これにより、ユーザーはより多くのアクセス制御を利用できるようになるため、サーバーの攻撃対象領域を大幅に減らすために、実稼働環境で有効にする必要があります。

アプリケーションデータにACPSBSストレージを使用する場合、その可能性のあるSELINUXにより、特定のアプリケーションがファイルやディレクトリにアクセスしたり書き込んだりできない場合があります。

この例では、Apacheフォルダー/ var / www/htmlはSBS論理ボリュームにあります。

chconコマンドを使用して、ApacheデーモンにSBSボリュームへの読み取り/書き込みアクセスを許可します。

# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/

(完全なWebルートを許可する場合)

# chcon -Rv --type=httpd_sys_rw_content_t /var/www/html/uploads/

(または単にフォルダをアップロードする)

Apacheプロセスにボリュームの所有権を与えるには、chownを使用できます:

# chown apache:apache -R /var/www/html/

再帰的なファイル権限を配布するには、次のようにfindコマンドとchmodコマンドを組み合わせます。

# find . -type f -exec chmod 0644 {} \;

注– chmod 644は、所有者のみが書き込み/変更を許可され、他のユーザー(グループ)が含まれる場合は読み取り専用であることを意味します。

再帰的なフォルダ権限を配布するには、次のようにfindコマンドとchmodコマンドを組み合わせます。

# find . -type d -exec chmod 0755 {} \;

注– 755は、すべてのユーザーの読み取りおよび実行アクセスと、ファイルの所有者の書き込みアクセスを意味します。

次に、Apacheがすべてのファイルを再帰的に提供できるようにSELINUXを設定します。

# chcon -t httpd_sys_content_t /var/www/html/ -R

または、特定のディレクトリへのApacheアクセスのみを許可する場合:

# chcon -t httpd_sys_rw_content_t /var/www/html/logs/ -R

# chcon -t httpd_sys_rw_content_t /var/www/html/uploads/ -R

今後の参考のために、HTTP(Apache)に必要な次の2つのSELINXパラメーターをメモしてください。

httpd_sys_content_t – allow Apache to serve contents

httpd_sys_rw_content_t – allow Apache to write to those path

Linux
  1. Linux –プロセスのネットワークアクセスをブロックしますか?

  2. Linux – Linuxにデバイスをマウントすることを意味しますか?

  3. Linux – Vm Dnsサーバーをオーバーライドする方法は?

  1. CloudBlockStorageボリュームからサーバーを起動します

  2. 最高の Web Linux サーバー

  3. Linux での lvremove コマンドの例

  1. Linux での lvdisplay コマンドの例

  2. LinuxでClangブロック?

  3. Linux での Kensington Slimblade の構成