LinuxユーザーがイジるはじめてのAzure

LinuxユーザーがAzureを使いこなせるように応援するブログです

はじめてのMicrosoft Azure(ディスクアタッチ)

↓前回までの記事

はじめてのMicrosoft Azure(仮想マシン) - LinuxユーザーがイジるはじめてのAzure

 

とりあえず最初のゴールだったCentOS7.2の仮想マシンSSHログインすることができましたか。

 

既にAzureポータルで見ると「状態」が「実行中」になっていると思います。

ここでは作成した仮想マシンにディスクを追加しマウントする、というところまでやってみましょう。もちろんARM環境でディスクを追加します。

 

では、、っと進める前に、まずは稼働させたCentOSSSHログインしOS内のディスク設定状況がどうなっているのかを見てみましょう。

 

まずはディスクから。

f:id:akazure:20160405105939j:plain

 

「/dev/sda」と「/dev/sdb」それぞれのデバイスに対して1つずつパーティションが切られていることがわかります。また、とりわけ容量が多いデバイスとして、「/dev/sda1」と「/dev/sdb1」がありますね。どちらもsdから始まっていますのでSCSIタイプのHDDなのかな、というのが少し垣間見れます。また、/dev/sda1はルートパーティション「/」ですので、/usrや/etc等を扱うデフォルトのlocaldiskが約30GB程度割り当てられていることがわかります。一方、ひときわ目立つ/dev/sdb1はどうでしょうか。約70GBの容量が/mnt/resourceというマウントポイント名で割り当てられています。気になりますので中身を少し見てみましょう。

f:id:akazure:20160404175347j:plain

 

なにやらDATALOSS_WARNING_README.txt、という気になるファイルが存在しますね。中身を見ると「ここは一時的なデータの置き場なのでリカバリーできません、個人情報やアプリケーションデータなどは置かないようにね」っと記載されています。素直になれない方はここにファイルを置いてみて仮想マシンを再起動してみて確認してみてください。置いたはずのファイルがなくなりますので。

 

もう1つ気になる点としては「/etc/fstab」ですね。見てみましょう。

UUID=90f6a33e-364a-47f5-9d71-3c311dbfdd54 /                       xfs     defaults        0 0

 

このような1行が記載されています。先頭の部分(デバイス名で記載する部分)がUUID形式で記載されています。デバイスの接続順による影響を受けない書き方ですね。「sudo blkid」と打ってこのUUIDがどのデバイス名を指しているのかを確認できます。あとジャーナリングファイルシステムが「xfs」と記載されています。CentOSディストリビューションRedHatに類似していますが、RHEL5ext3、RHEL6はext4、RHEL7からxfsと来ています。今回用意したCentOSは7.2ですので、この流れと類似していますね。ちなみにRHELではxfsになってからサポートされる最大容量も500TBと増えてきています。

 

まとめると、LocalDiskで30GB程度あり/tmpとして扱えそうな領域に70GB程度ある、fstabにはルートパーティションのみ記載がされている、ということがわかりました。これからディスクを追加する操作は、localdiskの30GBでは足りないケースとして参考にしてください。

 

では上記のディスクレイアウトについては見えてきましたので、新たにAzureで空のディスクを用意し、このサーバーへアタッチ&マウントするところまでやってみましょう。

 

ではAzure ポータルから、「Virtual Machines」>該当のCentOS-VMを選択>「設定」と移り、以下の登録をしましょう。該当の仮想マシンは稼働中のままですので、ここではホットアタッチします。

 

f:id:akazure:20160405131206j:plain

 

「ディスク」の画面では「新しいディスクの接続」と「既存のディスクの接続」と2つあります。今回は空のディスクを追加するので「新しいディスクの接続」を選択します。

 

Tips

「既存のディスクの接続」は、Azureで用意したストレージアカウントにVHD形式のディスクを配置しておくことで、仮想マシンへ該当のディスクをアタッチすることができます。 オンプレミスで稼働しているディスクをAzureのストレージにVHDファイルとしてアップロードすればAzure仮想マシンで見れる、と覚えておくとよいでしょう。

 

「名前」は好きな名前をいれてください。画面はデフォルト名のままにしてあります。

「種類」はStandardです。前の記事でも触れましたが、今回用意したサーバーサイズではPremium Storage(SSD)は利用できません。

「サイズ」は今回用意する空ディスクの総容量です。GBではなくGiB(ギビバイト)の表記になっていますが、気になる方は2進数表記で指定しましょう。ここではデフォルト値のまま1TB分を用意します。また、注釈でもある通り、後からこの容量を増やすこともできます。その場合は仮想マシンを"停止"してから操作することになります。

「予測パフォーマンス」は、特に入力する部分はありません。500iopsを上限とし60MB/secのスループット上限となっていることがわかります。

「場所」は今回用意したストレージアカウントの中に仮想マシンVHDを入れていますので、同じストレージアカウントのURLを指定します。(デフォルトのまま)

「ホストキャッシュ」はアタッチしたディスクを読み取り専用(read only)で扱うか、読み書き両方(read write)で扱うかを選択します。ここでは読み書き両方で設定しましょう。

 

一通り設定が終わればOKボタンを押して待ちましょう。5分程度で終わりますので、終わったらもう一度CentOSのターミナルに戻り、「sudo fdisk -l」を実行してみてください。

f:id:akazure:20160405153002j:plain

 

1番下に「/dev/sdc」というデバイスが追加されていることがわかります。Azure Portalで指定した通り1TB分の領域がアタッチされています。

このままではただディスクがアタッチされているだけですので、OSから認識できるようにマウントをしましょう。

 

「sudo fdisk /dev/sdc」を打ってパーティション設定をするやり方は以下のサイトの「3.[SSH] ウィンドウで、新しいデバイスを作成する」を参考にしてください。

 

Attach a disk to a Linux VM | Microsoft Azure

 

※英語表記の場合は左上にある「BING翻訳」で日本語に指定しましょう。

 

以下、attachdiskというマウントポイント名でマウントした際の画面です。

f:id:akazure:20160405155258j:plain

 

 

いかがでしょうか。ちゃんとディスクが追加されましたか。DBファイルやトランザクションログなど、大切に保管したいデータであり、LocalDiskの30GBでは足らない場合はこの方法でディスクを追加することができます。最後に、/etc/fstabにマウント設定を書き込み、仮想マシンが再起動してもマウントされた状態になる設定を入れておきましょう。

 

冒頭でも打った「sudo blkid」をもう一度たたいてみると/dev/sdc1のUUIDが見れます。この情報を元に、/etc/fstabに以下の記載をいれて更新しておきます。

 

UUID=1042961f-e67e-44e9-976c-dc05c8874f2a       /attachdisk     ext4    defaults        1       2

※2行に分かれて見えますが、1行です。

 

Tips

4列目~6列目について補足します。 4列目にはマウントする際のオプションを指定することができます。ここではdefaultsにしています。defaultのオプションは「rw, suid, dev, exec, auto, nouser, async」がすべて有効の設定になります。あまりいじることはない部分ですが、例えばこの領域へのアクセスが集中し、IO性能が悪く一時的に性能問題を解決したい時などは、noatimeと指定することでinodeに対するアクセス時間の更新をさせない、というチューニングができたりします。もちろんこれはファイルやディレクトリのアクセスタイムをアプリケーションが利用していない、という前提でできる解決方法の1つです。次に5列目ですが、ここでは「1」と記載しています。ここはdumpの要否を入れます。0は不要、1は必要の意味になります。最後の6列目はfsckオプションです。「0」はfsckチェックしない。「1」はルートファイルシステムでチェックする「2」はチェックする、です。

 

 

最後に「chmod 777 /attachdisk」としておけば、誰でも読み書きできる状態になります。

以上がLinux仮想マシンにディスクを追加する方法です。今回の記事は以上となります。