プログラマーのメモ書き

伊勢在住のプログラマーが気になることを気ままにメモったブログです

QNAP TS-251+ の設定(HDD移設など)

以前の記事でQNAP TS-251+ を導入した話を書きましたが、その続きです。

ここでは、既存のNASからデータをコピーして、いろいろと設定してゆきます。なお、既存のNASは、Netgear ReadyNas Duo で 2TB HDD × 2台(RAID 1)構成となっています。

アンチウィルス

一応、有効にしておきます。ダッシュボードから『コントロールパネル』→『アプリケーション』→『アンチウィルス』を選択し、『アンチウィルスを有効にする』にチェックを入れれば終わりです。

f:id:junichim:20161011152700p:plain

既定の共有フォルダの設定

  • Public
  • Web
  • homes

があります。 PublicはゲストアカウントでもR/W OK としておきます。 Webおよびhomesは当面使う予定がないので、共有名を非表示にしておきます。

あと、disk01という共有フォルダを追加しておきます(名称は既存のNASから引き継いでいる共有名なので、深い意味はありません)

ユーザー設定

既存のアカウントは管理者用として置いておくので、日常使い用のアカウントを作ります。 ユーザーとユーザーグループを追加して終わりです。ただし、一つ注意しないといけないのは、GUIからは、uid/gidの変更ができません。ですので、他のNASと混在して使うなどの場合は、SSHでログインして変更してやします。

uid 変更

uidの変更はsshでログインしてシェルから変更します。ちなみに、gidも変更する場合もあると思いますが、今回の環境だとgidは同じだったので、省略しています。

[/etc] # cat passwd
・・・
mor:x:500:100:Linux User,,,:/share/homes/mor:/bin/sh
[/etc] # 
[/etc] # usermod -u 1002 mor
[/etc] # cat passwd
・・・
mor:x:1002:100:Linux User,,,:/share/homes/mor:/bin/sh
[/etc] # 

既存の公開ディレクトリの所有者も変更しておきます。既存の公開ディレクトリは、/shareを見るとシンボリックリンクが作成されているので、それからたどるのが早いと思います。

[/share] # ls
CACHEDEV1_DATA/ HDD_DATA/       HDH_DATA/       HDL_DATA/       HDP_DATA/       HDT_DATA/       HDX_DATA/       Web@
HDA_DATA/       HDE_DATA/       HDI_DATA/       HDM_DATA/       HDQ_DATA/       HDU_DATA/       HDY_DATA/       disk01@
HDB_DATA/       HDF_DATA/       HDJ_DATA/       HDN_DATA/       HDR_DATA/       HDV_DATA/       HDZ_DATA/       external/
HDC_DATA/       HDG_DATA/       HDK_DATA/       HDO_DATA/       HDS_DATA/       HDW_DATA/       Public@         homes@
[/share] # 

上記の場合なら、Public Web homes といったデフォルトのものと、自分で作成した disk01 という公開フォルダがあることが分かります。

それぞれの公開フォルダ内で

[/share/disk01] # chown -R mor ./xxxxx

のようにして、所有者を自分にしておきます。

データのコピー

さて、既存のNASからデータをコピーしてやります。PC経由で2台のNAS間のファイルコピーをしてもよいのですが、その間PCが実質的に使えなくなるので、ちょっとやめました。 ということで、既存のNAS(Netgear Readynas Duo )から TS-251+ に対して、バックアップ機能を使って、TS-251+の共有フォルダにファイルをコピーしてやります。 ユーザーが自分だけなので、これでもなんとかります。

コピー対象となるデータ量が、約150GB程度で、約5時間程度でコピーが完了しました。

実は、単純にファイルコピーを行う前に、Rsyncを使ったバックアップでデータのコピーをしようとしたのですが、これが信じられないぐらい遅かったです。一晩経って、15GBだったかな? 何か設定ミスがあったのかもしれません。

HDD の移設

さて、既存のNASのHDDが2TBあるので、それをTS-251+に移して、既存NASには新たに購入した1TBのHDDを入れて、家族のデータを保存するのに使う予定です。 TS-251+は、こちらの記事でも書いたように、テスト用に1TBのHDDが1台セットアップ済みです。 このあたりの状況をまとめておきます。

NAS名称 HDD台数
TS-251+ 1TB HDD 1台
ReadyNas Duo 2TB HDD 2台

これを

NAS名称 HDD台数 備考
TS-251+ 2TB HDD 2台
ReadyNas Duo 1TB HDD 2台 1台はTS-251+から、もう1台は新規購入済みのもの

となるように入れ替える予定です。

まず最初に、ReadyNAS Duo からHDDを取り出します。 ホットスワップに対応しているので、何も考えずにフロントベイから抜いてしまいます。あ、もちろん作業前にはバックアップは取ってます。

次に、TS-251+ の空いているスロットへHDDを追加します。 こちらもホットスワップに対応しているので、何も考えずにHDDを認識してくれます。

f:id:junichim:20161007005649p:plain

ただ、このままではHDDは認識しているものの未使用の状態です(この辺りはHDDを認識すれば、勝手にRAIDに組み込んで使えるようになる ReadyNas の便利さが実感できます)。 『ストレージマネージャ』→『ストレージ領域』を開き、自分のストレージプール(この場合は『ストレージプール1』)を選択して『管理』ボタンを押します。

f:id:junichim:20161007005945p:plain

さらに、表示された画面下部の『ストレージプール1のRAIDグループ』にある『管理』ボタンを押します。

f:id:junichim:20161007010103p:plain

すると、移行画面が表示されます。

f:id:junichim:20161007010131p:plain

この画面は、現在のシングルディスクの状態からRAID1の状態に移行するための画面になります。 画面下部の『適用』ボタンを押すと、追加したHDDを組み込んでRAID1を構成してくれます。問題なく構成が完了すると、こんな画面が表示されます。

f:id:junichim:20161007010343p:plain

2台のディスク容量が異なっていても問題ないのがいいですね。

あと、同様の手順を踏んで、2TBのディスク2台でRAID1を構成した状態にします。 でも、最初に作成したボリュームの容量から自動的には増えてくれません。 それを増やすために、

f:id:junichim:20161007013556p:plain

にある『管理』から『容量の拡張』を選択します。

f:id:junichim:20161007013630p:plain

画面下部にある『容量の拡張』ボタンを押すと、ストレージプールとして容量を増やしてくれます。 ちなみに、上部にある『変更』とは、ディスクを入れ替えるときに使うようです。

次に、ディスク領域を増やします。今回は、ディスク領域全体を単一のボリュームとして利用します。 ストレージマネージャを開いて、『ストレージ領域』→データボリューム(DataVol1)を選択します。 f:id:junichim:20161011155815p:plain

この状態で『管理』ボタンを押します。

f:id:junichim:20161011155839p:plain

上部に『ボリュームの拡張』ボタンがあるので、そちらをクリックします。

f:id:junichim:20161011155913p:plain

新規ボリュームサイズを入力することができるので、拡張後のサイズを入力します(今回は『最大に設定』ボタンで設定します)。 『適用』ボタン押下後、しばらくたつとステータスに『準備完了』と表示されれば、終わりです。

とりあえず、これで使い始めることができるようになりました。

QNAP TS-251+ の設定(主に公開設定周り)

自宅のファイルサーバーとして、何台かのNASを使っているのですが、このたび、QNAP の TS-251+ を導入することにしました。 元々は、Netgear のNASばっかりだったのですが、もやし工房さんの記事を見て、Dockerが使えるのと、Netgear の NASでS3にバックアップを取れなさそうだったので、今回はQNAPを選んでみました。

www.moyashi-koubou.com

あ、Netgearの件は少し前に調べたので今は状況が異なっているかもしれません。なのと、GUIで簡単に設定するのがないだけで、SSHでログインして自分でS3へのバックアップを実行するようにすれば全然問題なく実現できると思います。

まずは、Dockerを使い始める前に、初期設定(主に公開設定周り)した話をまとめておきます。

あと、試したのは下記になります。

  • QNAP TS-251+
  • QTS 4.2.2

セットアップ

筐体を開けると、最近の機械の御多分に漏れず、簡単設定の方法が書かれた紙が入っていました。 本体にネットワークケーブルとHDDを追加して、電源を入れて、PCのブラウザで https://start.snap.com にアクセスして、筐体に書かれたアクセスコードを入力すればOK!

で、画面の設定に従って、必要事項を入力していけばいい・・・はずなのですが、この時点でいろいろと聞かれるので、まずこれが分かりにくい。 初期設定だけなら大したことしないだろうと思っていたので、画面キャプチャしなかったので、詳細を覚えてないのですが、いくつか設定する項目がありました。

  • myqnapcloud.com のアカウント登録(e-メールアドレス、パスワード)
  • myqnapcloud.com 上で使うデバイス(NAS)の名前
  • NAS 本体の名前
  • NAS の管理者用パスワード
  • NTP サーバー名

その他は確かデフォルト設定だったと思います。

で、一番わかりにくかったのが、(大して下調べもしてなかったのが原因ですが)myqnapcloud.com のアカウントって何?というところでした。 まあ、あとから、いろいろ調べてわかったのが、QNAPのNASをインターネット経由でアクセス可能とし、主にその際の公開設定などを行うためのサービスとなるようです。 NAS本体のセットアップだけを行うと思って、作業を開始していたので、この設定も同時に行わないといけないのに、ちょっとびっくりです。まあ、仕方ないのかな?もし、次にQNAPのNASを入れるときなったら、インターネット経由ではなく、ローカル環境で閉じた形でやってみるかな?

ストレージ設定

いろいと機能を試す間、ストレージにはとりあえず1TBのHDDを1台入れました。 設定方法はたいして覚えてないのですが、QTSデスクトップから『ストレージマネージャ』を起動して、あれこれしたように思います。

ただ、割り当ては、1TBまるまるストレージ領域として割り当てたのですが、システムがスナップショットなどに200GB近く予約してしまい、思ったよりユーザー領域が少なくなった印象でした。もっとも、このあたりの割り当て量はいろいりと変えられそうなので自分の目的に合わせて調整すれば良いかなと思います。

公開設定

で、セットアップ時に気になった myqnapcloud.com のアカウントですが、初期状態では NAS にインターネット経由で接続可能です。 試しに、myqnapcloud.com でデバイス名(公開用のNASの名前)を入力して検索すると、見事に表示されてしまいます。

f:id:junichim:20161004095759p:plain

ここで、 QTS Desktop を選択すると、なんと!NASの管理画面に入れてしまいます(もちろん、ユーザー名とパスワードは必要です)。同じく、File Station を選べば、NASに保存してあるファイルにもアクセス可能です。 便利といえば、便利ですが、プライベート用途のNASを公開設定で使うことは(当面)ないので、セキュリティ向上のためにも、いろいろと設定変更してみます。まずはいろいろと試したので、その様子を書いておきます。

デバイス検索の禁止

まずは、myqnapclod.com において、デバイスそのものの検索を禁止することができます。 QTSデスクトップの『myQNAPclod』→『アクセスコントロール』→『デバイスアクセス制御』で、プライベートを選択すると、myqnapcloud.com 画面から検索できなくなります。

f:id:junichim:20161004101401p:plain

ポート番号変更

デフォルト状態では、UPnpにより、以下のポートが(外部向けに)ルータに空いています。

  • 8080 : QTS Desktop, http
  • 8081 : Webサーバー, https
  • 8082 : QTS Desktop, https
  • 8083 : Webサーバー, http

ルータでUPnpの様子を表示させると、下記の様になっています。

f:id:junichim:20161004092739j:plain

それぞれが対応するポート番号もわかると思います。

このうち、内部ポート番号の8080番(QTS Desktop, http) は、QTSデスクトップから『コントロールパネル』→『システム設定』→『一般設定』→『システムポート』で変更することができます。 同様に、8081番のポート番号は、『コントロールパネル』→『アプリケーション』→『一般設定』→『Webサーバー』→『セキュア接続を有効にする』で変更することができます

これらはポート番号を変更すると、同時に対応する外部向けのポート番号も変更されます。 f:id:junichim:20161004093846p:plain (上図は、8081番を8084番に変更した場合の様子)

ですが、8082番、8083番のポート番号を変更する方法はわかりませんでした(443や80を変更すると、ローカル側のポート番号が変更されるため、単にUPnPで開けたポート番号からは接続できなくなります)。

プライベート化

もう少し試してみます。 デフォルト状態ですと、いくつかのサービスが公開状態になっています。 f:id:junichim:20161004095109p:plain

このうち、NAS Web (安全なNASウェブ)というのが QTS Desktop への接続になります。この『公開』状態は、myqnapcloudでストレージを見つけたら、誰でもアクセス可能になっている状態です。

f:id:junichim:20161004095759p:plain

ここで、『プライベート』にチェックを入れるとmyqnapcloud.comからアクセスしする際に、プライベートタブを開きますが、

f:id:junichim:20161004095742p:plain

のように、ユーザー名とアクセスコードの入力を求められます。なお、アクセスコードはプライベートにチェックを入れると、設定画面の下部に設定欄が表示されるので、そちらで入力可能となります。

公開停止

プライベートの機能は別の誰かにアクセスコード等を伝えて、共有するときに使います。でも、自分一人で使うなら、公開そのものが無くても問題ありません。 というときは、さきほどの設定画面で『公開』のチェックボックスを外して、公開そのものを取りやめてしまってもOKです。

注意点

さて、上記に書いたような方法で、外部からのアクセスを制御できるかと思いますが、これらはあくまでも myqnapcloud.com 経由でのアクセス設定を管理しているだけです。なので、アクセス用のURLを直接指定してブラウザでアクセスすれば、上記設定に関係なくアクセス可能です。ま、考えてみれば、NAS を自宅のLANの外部に公開するために、UPnP によりルータに穴をあけて、DDNSでURLを割り当てているので当然ですね。

外部ポート利用の停止

さて、いろいろと書いてきましたが、自宅のNASをインターネット上に公開してアクセスするのは、特段の理由もない場合は、怖いだけです。

ということで、最終的には、外部向けの公開を停止します。 QTSのデスクトップから『myQNAPcloud』→『自動ルータ構成』を選択し、『UPnPポート転送を有効化』のチェックを外します。

f:id:junichim:20161004100124p:plain

また、DDNSも不要になるので、『My DDNS』を選択し、『myQNAPclodd DDNSサービスを有効にする』のチェックも外しておきます。

あと、myqnapcloud.com でのデバイス検索をプライベートにし、公開サービスもなくしておきます。まあ、 myqnapclod.com を使わないのであれば、アカウントをサインアウトしてもよいのですが、ちょっと様子を見ようとも思いますので、このようにしました。

f:id:junichim:20161004104632p:plain

その他

もう一つついでに、QTS Desktop へのアクセスはhttpsに限定し、ポート番号も443から変更しておきます。 デフォルトでは、Web公開フォルダにある index.php が http://IPアドレス でアクセスすると、管理用インターフェースにリダイレクトする設定になっているので、このファイルを削除して、空の index.html ファイルを入れておきます。 あと、『コントロールパネル』→『セキュリティ』→『ネットワークアクセス保護』を表示して、『ネットワークアクセス保護を有効にする』にチェックを追加し、SSH/HTTPS/SAMBA にもチェックを入れておきます。

とりあえずこれで、自宅のLAN内部に侵入された場合も多少は防御できるかな?

次は機能的な面の設定をあれこれ触ってみたいと思います。

(参考)

chimtty.blogspot.jp

AndroidStudio のインストール (Windows環境)

いままで、Androidの開発は、Windows ホスト上の Ubuntu で eclipse+ADT でやってました(わざわざこんなことしてるのは、仕事単位で開発環境をいろいろと切り替えられるようにと、開発環境をいろいろといじって不安定になったときスナップショットで巻き戻してリカバーすることを可能にするためです)。

いい加減、AndroidStudio に移行したいなと思いつつも、お客さんとの絡みもあり、延び延びになってました。が、最近になってやっと AndroidStudio に移行できることになったので、やったと思い、Ubuntu上で環境を作ってみたら、これがなんと!話にならないぐらい遅くて、まあ、仕事で使い物になりません。

というわけで、当面は、ホストOS側のWindows上にAndroidStudioでの開発環境を作って対応することにしたので、環境構築についてメモにまとめておきます。 なお、(仮想マシンの)ubuntu上でのAndroidStudio開発構築についても、あきらめてはいないので、後日再トライしてみたいと思います。

インストール準備

AndroidStudio のインストールページ を見ても、あまり詳しく書いてありません。JDKも必要なのに、それすら(明確には)表記されてないです。

ということで、AndroidStudio のインストール準備として次のものをインストールしました。なお、OSは、Windows10 (64bit) です。

どちらもデフォルト設定でのインストールです。Java はインストール後、環境変数に JAVA_HOME を追加しておきます。

インストール

インストール準備ができたら、AndroidStudioのインストールです。これは特に問題もなく画面の指示に従ってインストールすれば終わります。

インストールが終わったら、プロジェクトの新規作成を行ってみます。これも画面の指示に従って選択していけば、問題なく完了し、AndroidStudioが立ち上がります。 仮想マシン上で試したときは、このときの初回ビルドがいつまでたっても終わらなかったのですが、今回の場合サクッと終わって、快適です。

VCSの有効化

Git を使うには、AndroidStudio を開いた状態で、メニューの『VCS』→『Enable Version Control Integration』 を選択します。バージョン管理システムの選択画面が表示されるので、gitを選択すると、gitリポジトリが、AndroidStudioプロジェクトのルートに作成されます(つまり、プロジェクト単位で作業を行う必要があります)。

この点は、eclipseと違いますね。eclipseの場合、プロジェクトのディレクトリと同じディレクトリにリポジトリを作るのは推奨されていませんでした。

ちなみに、当初は、AndroidStudio自体にgitのクライアント機能が含まれると思っていたのですが、gitインストール前だと、このメニューを選択してもエラーになります。おかしいな、と思ったら、ご自分の環境にgitがインストールされているか確認してください。

既存eclipseプロジェクトのインポート

既存eclipseプロジェクトのインポートもやってみます。移行手順も示されているので、その通りに作業するだけです。

  1. メニューの『File』→『New』→『Import Project』を選択します。
  2. インポート元のeclipseプロジェクトを指定します。この際、AndroidManifest.xmlが存在するディレクトリを指定してください。
  3. あとは、そのまま画面の指示に従えば、インポート処理が行われます。
  4. インポート後、いくつかエラーができることがあります。手元のプロジェクトの場合、下記のエラーなどがありました

    • gradle/wrapper.properties 内のバージョン番号の修正
  5. エラー修正後、ビルドに成功すれば、まあ、インポート成功です。

あとは、インポートした場合は、.gitignoreが存在していないので、適当な .gitignore を作成してgitにコミットすれば作業完了です。

(参考) インポートについてはこれなど詳しかったです

Android StudioにEclipseで作成したAndroidプロジェクトをインポートする - Narrow Escape