QNAP:他のNASから同期したフォルダに書込できない

HBS3 Hybrid Backup Syncの同期機能を使って既存のNAS(SMB)からQNAPにファイルをレプリケーションしておいてサーバーの移行を行い、いざ切替というところで共有フォルダ内にあるフォルダ以下に書き込むことが出来ないというトラブルが発生。共有フォルダのルートには書き込めるので、チェック時点では気がつかなかったのです。

Windows上からフォルダのプロパティを見るとAdministratorにのみ書込権限があり、Evryoneでは書き込めない状態になっています。

QNAP管理画面のFileStationからフォルダのプロパティを見ると所有者には書込権限はありますが、グループとパブリックには書込権限がありません。ここでグループとパブリックにも書込権限を付与すると、Windows上からファイルをコピーできるようになるので、これが原因のようです。

さて、困ったことにFileStationから複数のフォルダを選択して権限設定を書き換えることは出来ません。フォルダの数が多く、フォルダ毎に手作業で行うとなると、相応に時間がかかります。

ふと、QNAPのNASはsshで接続出来ることを思い出しました。コントロールパネルの「ネットワークサービスとファイルサービス」から「Telnet/SSH」を選択して「SSH接続を許可する」にチェックを付けます。

QNAPの共有フォルダは/share以下に作成されます。以下のコマンドを実行して全てのユーザーに書込権限を付与します。

chmod -R a+rw /share/Public

NASにSSHで入れると便利だね。

ちなみに環境は以下の通り。
QNAP TS-351
Firmware Version 4.4.1
HBS3 version 3.0.191202

SOHO用のNASに必要な要件

SOHO環境のNASをどうするか思案した結果、3ベイモデルのNASに行き着いたので、参考までにとりまとめておく。

SOHO向けNASの考察

SOHOにRAID5/6は不要

RAID5/6を構成できることを売り文句とする簡易NASが売られているが、安易にRAID5/6で構成してはいけません。RAID5/6の欠点も正しく知っている必要があります。

RAID5/6のHDDで物理障害が発生した場合には復旧は困難を極めます。例えばNAS本体が故障した場合、あるいは複数台のHDDが障害を起こした場合、これを普及するには同一型番のNAS本体なり、あるいはNASをマウントする専用のソフトウェアが必要になります。専用機材を持たない状態では手が出せないため、業者に委託せざる得なくなる可能性が高く、速やかな復旧は望めませんし、HDD4台程度のNASでも数十万の復旧費用がかかることになります。

RAID5/6のメリットはHDD1台では実現できない大容量を実現できる点、複数台のHDDに分散することで高速な読み書きを行える点にあります。ですが8TBのHDDでも、2TBのHDDでも容量単価は殆ど変わりません。大容量のメリットを得られるのは8TBを超えるパーティションが必要な時だけです。容量が8TB以下ならRAID1で十分です。高速化が必要ならRAID5/6よりもRAID10のほうが優れていますし、SSDをキャッシュとして使用するのも効果的です。

つまるところRAID5/6が必要なのは、RAID0/1/10では賄えないような、16TBを超える大きなパーティションが必要な場合に限られると言うことです。

SOHOならRAID1が理想

復旧作業を考えるならばRAID1が理想的です。よほど特殊なファイルシステムを採用していない限り、既存のPCでマウントするだけで直前に保存されたファイルも含めて復元することが出来ます。

高速性が必要ならSSDキャッシュを

高速性が必要ならSSDのキャッシュを設けた方が実効性が高いです。 RAID5/6/10でHDDの台数を増やすよりも 高い実効性を期待できる上に、先に述べたように復旧作業を考えるなら RAID5/6/10 は避けたいところです。

バックアップ機能も必要

RAIDにしているからと言ってバックアップが不要になるわけではありません。誤った操作によりファイルを上書きした場合など、バックアップがなければ対処できません。したがってバックアップ用のドライブも必要です。

出来れば世代別バックアップを行えるように、共有用パーティションの2倍程度の容量が必要です。

SOHO向けNASの まとめ

以上の条件を踏まえると、共有ストレージとしてRAID1を構築するためにHDDを2ドライブ、バックアップ先とするためにHDDを1ドライブ、合わせて3ドライブ以上のNASが必要ということになります。これに加えて、高速性も求めるならSSDをキャッシュとして利用できるもの必要です。

この条件を満たすNASを探していた時にたどり着いたのがQNAPの QNAP TS-332X/351/328のシリーズ。 他社だと2ドライブより上位のモデルは4ドライブになってしまい、少々オーバースペックとなってしまいます。ですが、QNAPのこのシリーズは 3.5インチのHDDを3台まで搭載できるというよく考えられた製品です。 TS-332X/351 ならSSDキャッシュを設けられるので速度面でも十分です。

ちなみにQNAPは中々尖った製品が多くて面白いです。比較的に安価なNASにも10GbE SFP+ポートを設けていたり、GPGPUやLGPAによる演算をサポートしていたり、仮想OSのホストになれたり、もはやNASの皮をかぶったサーバーですね。QSW-804-4Cなんかも10Gb HUBとしては最安値なんじゃないかな。

必要なサーバースペックを求める良い方法・・・

月間PV数とか接続クライアント数などの大雑把な指標から、必要なサーバースペックを求めたいと言う質問は昔からよく見かけます。答えは単純「そんな便利な方法はない。」の一言に尽きます。

必要なサーバスペックを求めるには実測にまさる方法はありません。サーバ行われる一連の処理を想定して適当なモックアップを作り、実際にアクセスして計測すれば良いのです。

なにも想定している最大の負荷を実際にかけて見る必要などは無く、数百回/minとかの適当な回数の処理を行い、CPUやネットワーク、ディスク、メモリの負荷量を計測すれば十分です。CPU使用率(%)、メモリの使用量(MB)、ディスクの読書量(MB/s、IOPS)、ネットワークのトラフィック量(MB/s)等の数値を得ます。

殆どの場合は処理回数が増えると、負荷量も線形に増加します。実運用において数万回/minの処理が行われる思っているなら、単純に数百回/minで計測した数値の100倍の負荷量に耐えられるハードウェアを選定すれば良いわけです。

ハードウェアの理論限界に対しての負荷量、負荷率が低い場合には、負荷量が上昇しても応答速度は殆ど低下しません。負荷率が一定レベルを超えると指数級数的に応答速度が低下します。これは必要なハードウェアリソースを使いたいその瞬間に、他の処理で使われていて使えない、コリジョンが発生する為です。これを踏まえて、CPUやメモリなら80%、ストレージやネットワークなら30%程度の負荷率を超えないように設定していれば、応答速度の低下を許容範囲におさめられるでしょう。

もちろん一度測定してしまえば、処理内容が同じなら流用する事もできます。即座に答えられるエンジニアは過去に似たような条件で実運用したデータを持っているか、あるいは計測した経験があるだけです。

特に実行環境がクラウドの場合には容易に試すことが出来るのですから、机上であれこれ考えるよりも、さっさと試した方が早いですよ。

WordPress 4.7のRSSフィードで日付のフォーマットエラーが発生する

RSSフィードのlastBuildDateの書式がおかしい。「月, 10日 1月 2017年~」って感じになる。コード上は日付を出力するときの書式指定は日本ロケールを意図していないにもかかわらず、日本ロケールの設定に基づいて日付を出力してしまうために、文字列が壊れるということらしい。

修正方法は以下のサイトを参考に・・・
WordPress4.7へアップデート後、Google Search ConsoleのサイトマップにRSSフィードを送信している場合、無効な日付エラーが発生している時の対処法。

ファイルサーバ導入の基本、ライセンス違反はないか?マイナンバーに使ってもよいか?

ファイルサーバ導入の基本、ライセンス違反はないか?マイナンバーに使ってもよいか?
宣伝記事とはいえ、語弊の多い内容なので・・・・

Windows搭載サーバをファイルサーバ用途として利用する際はアクセスするPCやユーザーの数に応じたライセンスが必要となる。そのことを知らずに利用してしまうと、ライセンス違反となってしまうので注意が必要だ。

グループウェアや業務システムを動かすにもユーザーの数に応じたライセンス(CLI)が必要になることが多い。CLIが不要なのはユーザー認証の無いシステムや、インターネットで不特定多数に公開するシステムだけです。業務システムやグループウェアでユーザー認証不要なサーバーと言うのは考えにくい。もしCLIを買っていないなら、ライセンス違反になっている可能性があるか、セキュリティ上問題があると思った方が良い。

とはいえ、「専用機ではなく、扱い慣れたサーバをファイルサーバにしたい」というニーズはもちろんある。それに応えたのが2番目に多い「サーバをベースとしたファイルサーバ専用機」という形態だ。

これらは機器としては一般のサーバと同じだが、「Windows Storage Server」というファイルサーバ向けOSを搭載している。用途が限られるが、PCやユーザーの数に応じたライセンス(Windowsの場合は「CAL(Client Access License)」と呼ばれる)が不要となる。

簡易NAS(LAN接続可能な外付けHDDやストレージ機器によるファイルサーバ専用機)でWindows Storage Serverを搭載している機器は稀である。特に国内ではBuffaloの一部のエディションを除いてほぼ皆無になっている。大部分はLinuxをベースとしたFile Server専用のディストリビューションで構成されている。

簡易NASは10名以下の小規模なチームで使用するには便利で私もお勧めする。これらの機器を単体で使う場合は、ユーザー認証機能が貧弱なことが問題となる。例えばユーザーごとにパスワードを設定しようとすると、従業員を一人一人呼び出してサーバーの管理画面からパスワードを設定してもらという、なかなかに面倒なことになる。Active DirectoryやLDAPを使った認証サーバーと連携することもできるが、Linuxをベースとした機器ではユーザー権限の設計思想が根本的に違うため、Windowsのような柔軟な設定はできない事が多い。従業員ごとにアクセス権を設定する必要がない場合や、ごく限られた人数で使用する場合には良いが、利用者数が増えると運用が難しくなる。

また、そもそも低価格帯の簡易NASは同時接続可能なセッション数を数百と見積もって設計されている。したがって接続するPCが数十台になるとスペック的にも苦しくなっているはずである。

「特定のPCをファイルサーバ用途として利用」は避けるべき選択といえる。WindowsではPCをファイルサーバ用途として利用することはライセンス上、許可されていない。

これは誤り。Windows 10やWindows 7などのクライアント用OSを使ってファイルサーバを構築することはライセンス上許可されている。ただし同時接続可能なユーザーセッション数が20までとなっている。一人のユーザーが複数のセッションを使用する場合もあるので安心して使えるのは5人程度までと思ったほうが良い。

従業員数が20名を超えるようなら、そろそろエンタープライズ向けのサーバーを用意して、クライアント管理機能を使用する事を見当した方が良い。というのも物理的にローカルコンソールにログインしてメンテナンスできる台数が、せいぜい20台が限界だからだ。例えば業務アプリケーションの一斉更新が必要になったとする。もし1台ずつ設定等を確認して構成していては、1台あたり数時間、数十台ともなれば終日頑張っても終えるのが難しくなってくる。セキュリティ更新の適用確認だって時間がかかる。

それにあわせて全社的なファイル共有の仕組みも整えるのが妥当と思う。昔はちょっとパソコンに詳しいだけの人が仕事を任されてしまった悲哀をよく聞いたが、今ならクラウドベースのサービスが多数あるので高度な専門知識がなくとも運用できる環境が整っている。Windows Itune(MicrosoftのクライアントPC管理サービス)やOffice 365といったサービスを使えば難しいことは抜きにできるはずだ。