IT関連

QNAP NASでのバックアップ用シェルを用意し、cronで動かす

QNAPのNASのファームウェアを4.0.3にアップデートしたら cronが動かなくなった。
対応方法を調査したのでそのときのメモ。
NASはTS-669 Pro

やりたいこと

rsyncを夜間に実行し、外付HDDにバックアップを取得したい。
QNAPの基本機能で外付けHDDにバックアップはできるが、ファイルの更新内容を
メールで送信したいためシェルを組み込む

対応方法

1.シェル用意
以下の2ファイルをどこかのディレクトリに作成。
私の場合は過去ログも共有フォルダで参照したいため、共有フォルダ内にシェル、ログを配置した。

#!/bin/sh

export LANG=en_US.UTF-8

sdate=`date +%Y%m%d%H%M`
cd /share/共有フォルダ/外付けHDDへバックアップ
sh copyExtHDDlib.sh > Log/$sdate.log 2>&1
RTN=$?
if [ ${RTN} -ne 0 ]
then
    # エラー
    fromAddr=”xxx@hiroroom.net”
    toAddr=”xxx@hiroroom.net”
    subjString=”copyExtHDD NG[NAS]”
    bodyString1=”外付けHDDへのバックアップが失敗しました。\n\n以下、実行ログです。\n\n”
    bodyString2=`cat Log/$sdate.log`
    bodyString=$bodyString1$bodyString2
    echo -e "From: <${fromAddr}>\nTo: <${toAddr}>\nSubject:${subjString}\n\n${bodyString}" | /usr/sbin/sendmail ${toAddr}
else
    # 正常終了
    fromAddr=”xxx@hiroroom.net”
    toAddr=”xxx@hiroroom.net”
    subjString=”copyExtHDD OK[NAS]”
    bodyString1=”外付けHDDへのバックアップが成功しました。\n\n以下、実行ログです。\n\n”
    bodyString2=`cat Log/$sdate.log`
    bodyString=$bodyString1$bodyString2
    echo -e "From: <${fromAddr}>\nTo: <${toAddr}>\nSubject:${subjString}\n\n${bodyString}" | /usr/sbin/sendmail ${toAddr}
fi
#!/bin/sh

#バックアップの実施
echo ""
echo "****************************** 共有フォルダ ***************************************"
echo `date`
rsync -av –delete /share/共有フォルダ/ /share/USBDisk1/共有フォルダ/ | grep -v "/$"
RTN=$?
if [ ${RTN} -ne 0 ]
then
    echo "**** エラー発生。処理を中断します。 ****"
    exit ${RTN}
fi

#ディスクの情報を出力
echo ""
echo "****************************** ディスクの情報を出力 ***************************************"
df -h

※rsyncの詳細出力から常に出力されるディレクトの情報は除いてています。
 grep -v “/$” でパスの最後が/で終わっているもの以外を出力。
 
 

2.ログフォルダ作成、権限割り当て
※ログフォルダも作っておく

mkdir Log
chmod u+x copyExtHDD.sh
chmod u+x copyExtHDDlib.sh

 
 

3.cron設定
/etc/config/crontabにcronの設定を追加。
1で作成したシェルを毎日朝3時に実行させる。

00 3 * * * /share/共有フォルダ/copyExtHDD.sh<br /><br />

※使っているssh接続ツールであるPoderosaだと日本語のパスが文字化けしたため、WinSCPでファイルをアップロードした

cron読み込み、その後サービス再起動

crontab /etc/config/crontab
/etc/init.d/crond.sh restart

cronが反映されているか確認

crontab -l

インターネット越しの共有フォルダへの接続

昔はできていたインターネット越しの共有フォルダへの接続において、
なぜかファイルのコピーだけできなくなったのでその時の対応メモ。
環境は以下のとおり。

QNAP NAS(OpenVPNサーバー込)
   |
インターネット
   |
Windows7 PC(OpenVPNクライアント)

上記のようにOpenVPNを使用しない、ローカルLAN内の
共有フォルダは普通にファイルコピーでもなんでもできるが、
なぜかOpenVPN越しだとファイルコピーだけできない。

●解決策
Windows7のクライアントPCの以下の設定を変更。
Windows7のN/Wの調整機能のせいのようだ。

********************* 現状の設定 *********************

netsh int tcp show global 
アクティブ状態を照会しています...

CP グローバル パラメーター
---------------------------------------------
Receive-Side Scaling 状態              : enabled
Chimney オフロード状態                 : automatic
BetDMA 状態                            : enabled
Direct Cache Acess (DCA)               : disabled
受信ウィンドウ自動チューニング レベル  : normal
アドオン輻輳制御プロバイダー           : none
ECN 機能                               : disabled
RFC 1323 タイムスタンプ                : disabled

********************* 修正内容 *********************
・パケット自動調整の機能を殺す

netsh interface tcp set global autotuninglevel=disabled

※参考サイト
http://ameblo.jp/mtb-show/entry-10722192687.html

SSDのパフォーマンス測定2

DELLのPCでCFD販売のSSDを使用した際のベンチマーク結果。

 パッケージは悪くないが、いかんせんSSD本体の見た目がしょぼい。

samsungやIntelみたいにしっかりした見た目ではない。

 

環境

 DELL OptiPlex 9010

 メモリ:8GB

 SSD:SSD S6TNHG5Qシリーズ。CSSD-S6T256NHG5Q 256GB

  RAIDなしのディスク1台構成です。

 

ベンチマーク結果

image001

Amazonでも在庫あり。安い。これならSamsungのほうがお得か?悩みどころだ。

製品の見た目がCFDはしょぼいので、なんとなくSamsungのほうが惹かれる。

HDD,SSDのパフォーマンス測定

先日SSDをから発売されたSSDを購入したので今までのHDD、SSDの速度測定結果をまとめる。

以下、マザボ等の構成は以下のとおり。

 

CPU:Core i5-3570K 3.4GH’z

メモリ:CFD W3U1600HQ-4G [DDR3 PC3-12800 4GB 2枚組]×2。計16GB

マザーボード:ASUS P8H77-V

 

パターン1.HDD 2台でRAID0

 シーゲート ST3500418AS 500GB×2台

 RAIDのブロックサイズ128KB

2

 

パターン2.SSD 1台。RAIDなし

  INTEL 330 Series SSDSC2CT120A3K5

  RAIDのブロックサイズ128KB

1

 もう型落ちだし、あまり流通もないようだからAmazonでも高いな。

 

パターン3.SSD 2台。RAID0

  Samsung SSD 840 EVO 120GB

   RAIDのブロックサイズ32KB

インテル® ラピッド・ストレージ・テクノロジー(IntelRST)を使えばキャッシュを使用する設定ができ、

早くなるとのことなので3パターン試した。

RSTを入れてキャッシュを有効にすると4kのランダムライトがかなり高速になるようだ。

全体的に遅くなっている気がするが、ランダムが早いほうがよさそうなのでRSTでキャッシュありで使おうかな。

 

①RSTのソフトインストールなし image002

②RSTのソフトインストール後。キャッシュ未設定

image004

 

③RSTのソフトインストール、キャッシュをライトバックモードで設定後

image006

 

RSTの設定

image008

最近出た製品だし、Amazonでも在庫あり。安い!!!

 

 

SubVersionの構築

ソース管理としてSubversionをCentOS5.5にインストールしたので
その時の手順を以下に記載します。
Subversionにはapache経由でhttp,httpsで接続する方法と
subversionにもともとあるsvnserve経由で接続する方法があるが、
今回は簡単なsvnserve経由での構築を行った。

1.subversionのインストール
 yum -y install subversion

2.subversionのリポジトリ(データの保存先)を作成
 svnadmin create /var/subversion
  ※企業などでは通常リポジトリ用のルートディレクトリを作成後、その中に
   案件ごとにリポジトリを分けます。
   自宅では複数のリポジトリは不要なので1つだけ作成しました。

3.設定ファイルの編集
 vi /var/subversion/conf/svnserve.conf
 以下の三行に変更
  anon-access = none
  auth-access = write
  password-db = passwd
 ※パスワードでの認証は必須で、パスワード認証をしないと
  読み込みも書き込みもできない。

4.パスワードファイルの編集
 vi /var/subversion/conf/passwd
 最終行に以下のようにユーザーを追加
 hiro = hogepass

5.xinetdのインストール
 CentOS5.5のデフォルトのオプションだとxinetdがインストールされないため、
 yumでインストールしておく。

 yum -y install xinetd

6.自動起動に設定。inet経由で起動させる。
 サービスの登録を行う。
 vi /etc/services
 下記2行が記述されているか確認。もしなければ追記する。
 svn 3690/tcp # Subversion
 svn 3690/udp # Subversion

7.起動ファイルの作成
 vi /etc/xinetd.d/svn
 以下のように記述する。

 service svn
{
disable = no
socket_type = stream
protocol = tcp
wait = no
user = root
server = /usr/bin/svnserve
server_args = -i -r /home/subversion
}

8.自動起動するようにサービス設定
 /sbin/chkconfig –add svn

9.xinetを起動
 /etc/rc.d/init.d/xinetd start

その後OSを再起動して正常にsubversionに接続できればOK!!!
完了~~~