「ほっ」と。キャンペーン
<   2011年 10月 ( 37 )   > この月の画像一覧
App-V でOffice2010を評価しようとしたけれど。。
MSのApp-V for RDSを試してみたでApp-Vの環境を構築したので MS Office 2010 を入れてみようと思いました。

とりあえずMS Office 2010の体験版をダウンロードして、シーケンサーでインストールを記録します。

で、App-Vサーバに登録して実行しようとしましたが、エラーになります。
調べると、Microsoft Office 2010 Deployment Kit for App-V というのをRDSサーバ側で実行しないといけないようです。

いれたところ起動するようになったのですが、起動時にプロダクトキーが要求されるので、体験版のキーを入れましたが、認証通りません。

どうやら、App-V検証~その4 Office 2010 をシーケンス処理する MCTの憂鬱によるとApp-Vで使うのは、ボリュームライセンスでないとダメなようです。
上記参考先に、細かい手順が載っているので、実際にインストールするときは参考にするとよいでしょう。

手近に使えるボリュームライセンスがなかったので、結局評価が出来ませんでした。
[PR]
by Jehoshaphat | 2011-10-28 00:29 | サーバがらみ | Trackback | Comments(0)
MSのApp-V for RDSを試してみた


HPのシンクライアント評価時に、営業担当からApp-Vの話を聞きました。
恥ずかしながらそれまでApp-Vのことは知りませんでした。
ということで、App-Vを試してみました。


MED-V,APP-V,RemoteApp,VDI
どうやら調べてみるとMicrosoftの仮想化ソリューションはいつの間にやら結構出ていたようです。
主に、MED-V,APP-V,RemoteApp,VDIがあるようですね。どれもアプリケーションの仮想化なのでユーザーエクスペリエンスは同等ではあるんですが、使っている技術が大きく異なります。
下記の技術をうまく組み合わせて、ユーザビリティなアプリケーション環境を作ることが肝ですね。


●MED-V(Microsoft Enterprise Desktop Virtualization、Virtual PCとXP Modeの集中管理化)
クライアントPCの上で仮想PC(VirtualPC)を動かしレガシーアプリケーションを動かす方式です。
ただし、仮想PCと言っても、その上で動かすアプリケーションのウィンドウしか見せません。
Windows7 の XP Mode アプリケーションみたいなものです。
XP Mode と異なるのは一括管理機能を有することみたいです。

●App-V(Microsoft Application Virtualization、アプリケーションの仮想化とストリーミング配信)
今回の記事のメインのアプリケーション仮想化機能です。
アプリケーションを仮想パッケージ化し、クライアントPCではApp-Vサーバより配信されたアプリケーションを実行するという、アプリケーションのストリーミング配信的な形態です。
パッケージ化は、シーケンサーというツールで、アプリケーションのインストールを監視して、変更があったファイル・レジストリの設定をまとめてしまいます。
パッケージ化されているので、実行するクライアントPCにいちいちアプリケーションをインストールする必要も有りません。(ただし、アプリケーションが動くのはクライアント上であり、クライアントのOSの依存が完全になくなるのではないことは注意が必要です)
これを使うと、同じクライアントPCで複数のバージョンのアプリケーションを同時に動かせたりしますし、アプリケーションの配布も楽になります。
通常のApp-VはクライアントPCで仮想アプリケーションを動かすことを前提としてますが、App-V for RDS(Application Virtualization for RemoteDesktop Service)を使うと、リモートデスクトップサーバ上でApp-Vを使用することができます。
今回は、この App-V for RDS を試してみました。

●RemoteApp(画面転送)
これはリモートデスクトップのアプリケーション版ですね。
リモートデスクトップサーバ上で任意のアプリケーションを実行し、そのアプリケーションのウィンドウをクライアントPCに転送するというものです。
CitrixのXenAPP(旧メタフレーム)とほぼ同じ機能です。


●VDI(Virtual Desktop Infrastructure、デスクトップ仮想化)
これはサーバ上に多数の仮想化したクライアントOSを配置し、クライアント(主にシンクライアント等)からその仮想OSを使うイメージです。
プレゼンテーション層の仮想化(リモートデスクトップサービス,ターミナルサービスetc)と似ていますが、仮想化されたクライアントOSとクライアント端末が1対1になるという点が異なるでしょう。(クライアントOSなので複数ユーザ起動がNGなアプリやサーバOSでの動作がNGなアプリも動かせます)
昨今の震災で在宅勤務の観点から注目を集めているようです。
CitrixのXenDesktopやMSのHyperV+RDSなどがこれに当たるようです。

各機能の比較や特徴については下記を参照:
仮想化の教室 [第9回] 企業デスクトップの仮想化 ~MDOPの新顔、MED-V~ : Windows Server - Computerworld.jp
TechNet:MED-V と App-V を比較しどちらが自分に合っているかを判断する
VDI(Virtual Desktop Infrastructure) - @IT
【仮想化道場】 マイクロソフトの仮想化戦略を担うMED-V【前編】 -クラウド Watch
アプリケーションを使いやすくするVDI環境の拡張機能 - @IT(VDIとRemoteApp,App-Vの組み合わせ)

Windows Server 2008で大幅に進化したターミナルサービスを試す【中編】(RemoteApp)





App-V for RDSの構成
App-V for RDSの構成はちょっと複雑です。

まず、サーバとして下記が必要になります。
・RDSサーバ : 仮想化アプリケーションを実行するリモートデスクトップサーバー
・App-V(Application Virtualization Server)サーバ : 仮想化アプリケーションを配信するサーバ

また、アプリケーションをパッケージ化して仮想化するための Application Virtualization Sequencer という環境が必要になります。


App-V 配信サーバ構築
App-Vサーバには、Application Virtualization Management System というソフトをインストールする必要がありますが、他にも IIS6.0 以降(ASP.Net)や.NetFramework2.0以降、SQLServer2008(ExpressEditionでも可)、ActiveDirectory環境も必須になるようです。

インストール媒体はTechNetの サーバー → Desktop Optimization Pack → Microsoft Desktop Optimization Pack 2011 (x86 and x64) - DVD (Japanese) をダウンロードしました。

具体的なインストールの手順は、Microsoft Application Virtualization スタート アップ ガイド | TechNetにドキュメントが公開されています。が、docx形式なので注意が必要です。

今回インストールするのは、App-V 4.6 SP1 を試しました。上記のスタートアップガイドは App-V 4.5 のものですが、ほとんど変更はありません。
(4.6といっても、MagementServer は 4.5 SP2 のままのようです。App-V4.6については、山市良のえぬなんとかわーるど: (補足) MDOP 2010 の App-V 4.6 についてが参考になります。)

スタートアップガイドに従うと、下記のような手順で、App-Vサーバを構築していきます。

・IIS(ASP.Net)のインストール。
・SQLServer Expressのインストール。
・ADにグループ、ユーザ追加。
・Management Server 4.5 SP2 のインストール

System Center Application Virtualization Streaming Serverはインストールしませんでした。


クライアントソフトのインストール
App-Vクライアントとなるリモートデスクトップサーバに、Application Virtualization Desktop Client 4.6 SP1のインストールしようとしましたが、できません。
リモートデスクトップサービスがインストールされている環境では、RDS用のクライアント(App-V for RDS(TS))がいるようです。

App-V for Remote Desktop Services (RDS) 4.6 (32-bit/64-bit)はダウンロード提供となり、http://www.microsoft.com/downloads/ja-jp/details.aspx?displaylang=ja&FamilyID=e633164f-9729-43a8-9149-de651944a7feからダウンロードできるようです。


App-V for RDS をインストール後、管理ツール → Application Virtualization Client → 公開サーバ でApp-Vサーバの指定を行います。
設定は下記のようにしました。
表示名:自由
種類:Application Virtualization Server
ホスト名:app-v.hogedomain.local
ポート:554


ここまでできたら、デフォルトで用意されているサンプル仮想アプリケーションの動作確認を行います。
スタートアップガイドの 4.5 章の部分ですね。


Sequencerの環境M
App-VではApplication Virtualization Sequencerというツールで、アプリケーションを仮想パッケージ化します。
このSequencerは、クリーンインストールされており、WindowsUpdate以外のプログラムは何もいれてはいけないようです。
なので、仮想PCとして環境を作るのが望ましいでしょう。それで、クリーン時のすナプショットを取っておき、何かの仮想アプリケーションをパッケージ化したら、一旦スナップショットを復元し、またパッケージ化するという感じです。

今回はOSはXP SP3としました。
Microsoft Desktop Optimization Pack 2011内にある、Sequencer4.6 SP1(32ビット)をスタートアップガイドの5.3章に従いインストールします。

シーケンスの手順も、スタートアップガイドの5.4章に従って行います。
4.5と4.6は若干画面が異なったので注意が必要かもしれません。

パッケージ作成後に、Sequencer で作成したパッケージを開き、展開設定を忘れないようにしないといけません。
"展開"タブでプロトコルと、ホスト名とパスを設定します。(プロトコル・ポートについてはスタートアップガイドに従ってセットアップしたなら RTSP 554ポートになります。ホスト名は、App-vサーバのホスト名を指定します。パスは作成されたパッケージのフォルダと同じにしないといけません。)
また、オペレーティングシステムで、実行対象のOSを選択します。今回は2008R2上のRDSで使う予定なので、Windows 2008 R2 Terminal Server 64-bitを選ぶ必要があります。

これでパッケージを上書き後、App-Vサーバにアプリケーションを登録します。
App-VサーガのApplication Virtualization Management Consoleで、"アプリケーション"ツリー → "アプリケーションのインポート" でパッケージを選びます。
このあたりの作業は、スタートアップガイド 5.5章を参考にできます。


最後に、RDSサーバで実行出来ればOKです。アプリケーションの読み込みはRDSのログイン時になるようですね。


.Net Frameworkの上で動くアプリケーションに仮想化は結構面倒みたいです。
Paint.Netを試みましたがうまくいきませんでした。


参考:
App-V検証~その1 環境作成 MCTの憂鬱
Microsoft Application Virtualization (App-V) のライセンス: Microsoft Virtualization
Microsoft Desktop Optimization Pack (MDOP)についてまとめてみる: MSLabo
Microsoft Application Virtualization 4.5 ドキュメント | TechNet
Microsoft Application Virtualization ホーム
ついてるサラリーマンアスリートの備忘録 | Microsoft Application Virtualization 4.5
Application Virtualization Client のトラブルシューティング情報
2008R2RDS導入のポイント_v1.0.pdf MSのTechnetブログに掲載されてた情報ですが、App-Vに限らずRDSを使う上での冗長化、ライセンス、パフォーマンスについて分かりやすくまとめられています。RDSを導入するのなら必ず読んでおくべきですね。
[PR]
by Jehoshaphat | 2011-10-28 00:27 | サーバがらみ | Trackback | Comments(0)
リモートデスクトップの接続の履歴を削除したい
リモートデスクトップクライアントは一度接続したサーバのアドレスを保存し、コンボボックスから選べるようになっています。
また、リモートデスクトップクライアントを起動すると直前に接続したときの情報がデフォルトで入っています。


それらを削除する方法です。

まず、リモートデスクトップクライアントのコンボボックスのサーバアドレスですが、これはレジストリに保存されているようです。

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default

上記キー内に、"MRU0"~"MRU9" まであり、その"データ"部分に接続したサーバのアドレスが残っています。
この"データ"の中身を削除してやればOKです。

また、起動直後にデフォルトで入っている情報は、マイドキュメント直下の "Default.rdp" という隠しファイルに保存されているようなので、これを削除してやればOKです。

ということで、下記のようなレジストリファイルを作成し、バッチファイルで Default.rdp の削除とregファイルの実行をしてやればOKです。

del_rdp.reg として保存。

Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default]
"MRU0"=""
"MRU1"=""
"MRU2"=""
"MRU3"=""
"MRU4"=""
"MRU5"=""
"MRU6"=""
"MRU7"=""
"MRU8"=""
"MRU9"=""


実行するバッチファイルの方。

@echo off

del /Q /A:H "C:\Documents and Settings\hoge\My Documents\Default.rdp"
del_rdp.reg


補足:
レジストリを覗いていたら、下記のキー配下にも各サーバごとにデフォルトのユーザ名の設定が残っていました。
これも削除してやる必要があるかもしれません。

HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers\各ターミナルサーバアドレス



参考:
@IT:リモート・デスクトップの接続コンピュータ履歴を削除する
はてな
[PR]
by Jehoshaphat | 2011-10-28 00:23 | 豆知識 | Trackback | Comments(0)
XPにRDP7.0対応のリモートデスクトップクライアントを入れる
Windows7 / WindowsServer2008 R2 からRDPのバージョンが7.0にアップし、サーバからの指示に基づいてクライアント側で描画できるようになりました。
(RDP7.0について詳しくは、RDP 7 の変更 - 川西 裕幸のブログ - Site Home - MSDN Blogs【本田雅一の週刊モバイル通信】 Windows 7で変わるリモート操作環境 を参照)

XPではてっきりRDP7.0に対応したリモートデスクトップクライアントは提供されないと思ってたんですが、どうも提供されてたようです。

ということが、Windows XP と Windows Vista 用の RDP 7.0 提供開始!!が書いてありました。
ただし、現時点ではWindowsUpdateでは対処となっていないようで、下記からダウンロードしてインストールする必要があります。(6.1になったときはWindowsUpdateからできた気がしたのですが。。。)

XP向けは、http://www.microsoft.com/downloads/details.aspx?displaylang=ja&FamilyID=72158b4e-b527-45e4-af24-d02938a95683、Vista向けはhttp://www.microsoft.com/downloads/details.aspx?familyid=AC7E58F3-2FD4-4FEC-ABFD-8002D34476F4&displaylang=jaからダウンロードできます。
[PR]
by Jehoshaphat | 2011-10-28 00:22 | 豆知識 | Trackback | Comments(0)
(Linux)/usr/bin/sealerとsetroubleshootdがメモリ大量消費
久々にCentOSの自宅サーバの触ってtopコマンドで shift + m でメモリ消費順でソートしたら /usr/bin/sealer と setroubleshootd がやたらメモリ食っていました。
下記のような感じです。


top - 10:46:57 up 115 days, 20:33, 5 users, load average: 0.37, 0.29, 0.20
Tasks: 154 total, 1 running, 152 sleeping, 0 stopped, 1 zombie
Cpu(s): 0.9%us, 0.9%sy, 0.0%ni, 91.5%id, 0.0%wa, 0.0%hi, 6.7%si, 0.0%st
Mem: 604304k total, 597012k used, 7292k free, 5400k buffers
Swap: 1048568k total, 248544k used, 800024k free, 104580k cached

PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
13172 root 16 0 180m 89m 11m S 0.0 15.1 2:05.89 /usr/bin/sealer
1984 root 15 0 116m 81m 5216 S 0.0 13.7 81:11.91 setroubleshootd
2414 tomcat6 22 0 295m 57m 9256 S 0.7 9.7 503:50.06 jsvc
2430 root 15 0 121m 49m 7072 S 0.0 8.3 2:45.76 httpd
9749 apache 16 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9750 apache 16 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9751 apache 16 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9752 apache 16 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9753 apache 20 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9754 apache 20 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9755 apache 20 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
9756 apache 20 0 121m 43m 884 S 0.0 7.3 0:00.00 httpd
13122 root 15 0 43052 22m 9.8m S 0.0 3.8 1:27.88 puplet
13194 root 15 0 61768 18m 10m S 0.0 3.2 3:05.36 gnome-terminal
13083 root 18 0 60924 15m 9.8m S 0.0 2.7 0:01.88 gnome-panel
13085 root 20 0 96860 13m 10m S 0.0 2.3 0:37.97 nautilus
...


調べると、/usr/bin/sealer と setroubleshootd はどうやらSELinuxのヘルプサービス関連みたいです。

とくに必要ではないので service setroubleshoot stop で停止させましたが、/usr/bin/sealer が消えません。
yum remove setroubleshoot でアンインストールしましたが、それでもプロセスが残っていました。

最終的に kill コマンドで強制的に殺してやりました。



参考:
CentOS 5.0でCPUを使い切っていた。。 | hello goodbye
【CentOS】/usr/bin/sealer がCPUリソースを食いつぶす件 - FREEBOX IV
Red Hat Enterprise Linux 5で始めるSELinux - @IT
[PR]
by Jehoshaphat | 2011-10-28 00:20 | Linux | Trackback | Comments(0)
(Linux)故障したバッファローのLinkStation(RAID1)のデータ復旧
会社で、何故かバッファローのLinkStation LS-WXL/R1シリーズを使ってます。
LS-WXL/R1については〈リンクステーション〉 RAID機能搭載 ネットワーク対応HDD |LS-WXL/R1シリーズ【清水理史の「イニシャルB」】 第380回:高速化され実用性がアップしたRAID 0/1対応NAS バッファロー「LS-WXL/R1シリーズ」 -INTERNET Watchを参考。

信頼性を高めるためにRAID1(ミラーリング)構成で使っていました。

しかし、ある日突然アクセス不能に。。。背面電源スイッチでシャットダウンを試みようとしましたが、シャットダウンが始まる気配が有りません。
バッファローのサポートに電話して、10数分待ってようやくつながったサポート担当者に問い合わせてみました。
ファームウェアが故障したスタンバイモードと、機器の故障のハングアップのどちらかの状態ではないかとのこと。スタンバイモードならNASナビゲータで検知できるようですが、検知できなかったのでコントロールユニットの故障によるハングアップっぽいです。
そうなると強制電源断をして、起動しなければ修理になるとのことでしたが、修理だとデータは消去されるとのこと。(ちなみに、ファームアップデートでもデータ消える可能性があると自信をもって言われました。)

電源断して再投入しましたが、起動中のままで一向に起動完了しません。どうやら完全にお亡くなりになったようです。
バッファローはデータ復元なんぞ一切にしないと自身をもって言いますし、データ復旧業者に頼むと高くつきます。

ということで、ここから本題ですが、このLinkStationのHDDのデータを読めるかどうか挑戦しました。
(一応バックアップはとっていたんですが、設定漏れで一部の共有フォルダが出来てませんでした)


LinkStationのRAIDはLinux標準のソフトウェアRAID(多分mdraid)となっているようです。
なので、LinuxをインストールしたPCを用意します。
今回は Fedora13 LXDE 版をインストールしたPCで試しました。


まず、LS-WXL/R1 のディスク1台目(シールで"1"と書いている方)を取り出し、SATA を USB に変換するケーブルで、FedoraいれたPCにUSB接続します。

下記コマンドでUSB接続したコントローラが認識しているか確認します。


# lsusb
Bus 003 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 002 Device 001: ID 1d6b:0001 Linux Foundation 1.1 root hub
Bus 001 Device 002: ID 152d:2338 JMicron Technology Corp. / JMicron USA Technology Corp. JM20337 Hi-Speed USB to SATA & PATA Combo Bridge
↑ちゃんと認識してます。
Bus 001 Device 001: ID 1d6b:0002 Linux Foundation 2.0 root hub

# cat /proc/bus/usb/devices
(省略) ↓認識てますね。
T: Bus=01 Lev=01 Prnt=01 Port=03 Cnt=01 Dev#= 2 Spd=480 MxCh= 0
D: Ver= 2.00 Cls=00(>ifc ) Sub=00 Prot=00 MxPS=64 #Cfgs= 1
P: Vendor=152d ProdID=2338 Rev= 1.00
S: Manufacturer=JMicron
S: Product=USB to ATA/ATAPI Bridge
S: SerialNumber=316F4903B009
C:* #Ifs= 1 Cfg#= 1 Atr=c0 MxPwr= 2mA
I:* If#= 0 Alt= 0 #EPs= 2 Cls=08(stor.) Sub=06 Prot=50 Driver=usb-storage
E: Ad=81(I) Atr=02(Bulk) MxPS= 512 Ivl=0ms
E: Ad=02(O) Atr=02(Bulk) MxPS= 512 Ivl=0ms


# cat /proc/scsi/scsi
Attached devices:
↓内蔵のストレージたちです。
Host: scsi1 Channel: 00 Id: 00 Lun: 00
Vendor: ATA Model: FUJITSU MHT2040A Rev: 0022
Type: Direct-Access ANSI SCSI revision: 05
Host: scsi2 Channel: 00 Id: 00 Lun: 00
Vendor: TOSHIBA Model: DVD-ROM SD-R2002 Rev: 1F26
Type: CD-ROM ANSI SCSI revision: 05
↓これがUSB接続したHDD。USB接続するとSCSIとして認識します。
Host: scsi0 Channel: 00 Id: 00 Lun: 00
Vendor: SAMSUNG Model: HD502HI Rev: 1118
Type: Direct-Access ANSI SCSI revision: 02


さて、fdiskでパーティション構成を見てみます。


# fdisk -l
(内蔵HDDは省略)
WARNING: GPT (GUID Partition Table) detected on '/dev/sdb'! The util fdisk doesn't support GPT. Use GNU Parted.

Disk /dev/sdb: 500.1 GB, 500107862016 bytes
255 heads, 63 sectors/track, 60801 cylinders
Units = cylinders of 16065 * 512 = 8225280 bytes
Sector size (logical/physical): 512 bytes / 512 bytes
I/O size (minimum/optimal): 512 bytes / 512 bytes
Disk identifier: 0xa57f4f09

Device Boot Start End Blocks Id System
/dev/sdb1 1 60802 488386583+ ee GPT

どうやら、LS-WXL/R1のパーティションはGPT構成みたいです。
(GPTはMBRに置き換わるパーティション構成です。詳しくは、GUIDパーティションテーブル - Wikipedia,GPTパーティション - 個人的健忘録 from 2009 - 楽天ブログ(Blog)を参照。)
GPTのパーティションは fdisk では管理できないので、parted を使えと言ってますね。

parted でパーティション構成を覗いてみます。

# parted -s /dev/sdb print
Model: SAMSUNG HD502HI (scsi)
Disk /dev/sdb: 500GB
Sector size (logical/physical): 512B/512B
Partition Table: gpt

Number Start End Size File system Name Flags
1 17.4kB 1024MB 1024MB ext3 primary
2 1024MB 6144MB 5120MB xfs primary
3 6144MB 6144MB 512B primary
4 6144MB 6144MB 512B primary
5 6144MB 7168MB 1024MB linux-swap(v1) primary
6 7168MB 492GB 485GB xfs primary

パーティション構造が確認できました。
おそらくユーザデータは6番目のパーティションにあるだろうということで、マウントしてみます。

# mkdir /mnt/hdlan1
# mount -t xfs /dev/sdb6 /mnt/hdlan1/


マウントできました!
マウント先を見ると、ちゃんとユーザデータが残っておりアクセスできます。

これでデータを取り出すことができました。

さて、同時に2台目も接続してみました。
1台目と同じようにマウントしてみます。

# mkdir /mnt/hdlan2
# mount -t xfs /dev/sdc6 /mnt/hdlan2
mount: wrong fs type, bad option, bad superblock on /dev/sdc6,
missing codepage or helper program, or other error
In some cases useful info is found in syslog - try
dmesg | tail or so

エラーになりマウントできないので、エラー内容を見てみます。

# dmesg | tail
sd 4:0:0:0: [sdc] Mode Sense: 00 38 00 00
sd 4:0:0:0: [sdc] Assuming drive cache: write through
sd 4:0:0:0: [sdc] Assuming drive cache: write through
sdc: sdc1 sdc2 sdc3 sdc4 sdc5 sdc6
sd 4:0:0:0: [sdc] Assuming drive cache: write through
sd 4:0:0:0: [sdc] Attached SCSI disk
XFS: Filesystem sdc6 has duplicate UUID - can't mount
XFS: Filesystem sdc6 has duplicate UUID - can't mount
XFS: Filesystem sdc6 has duplicate UUID - can't mount
XFS: Filesystem sdc6 has duplicate UUID - can't mount

UUIDが原因でマウントできないようです。調べるとUUIDを無視したマウント方法があるようなので試してみます。

# mount -t xfs -o nouuid /dev/sdc6 /mnt/hdlan2

うまくいきました!

さて、せっかくなので他のパーティションも覗いてみました。

/sdb1 は ext3 ファイルシステムでどうやらファームのイメージファイルが入っているようです。

# ls -la
total 164040
drwxr-xr-x. 3 root root 4096 May 23 2010 .
drwxr-xr-x. 6 root root 4096 May 18 11:20 ..
-rw-r--r--. 1 root root 136077 May 23 2010 conf_save.tgz
-rw-r--r--. 1 root root 156505342 Dec 3 2009 hddrootfs.buffalo.updated.done
-rw-r--r--. 1 root root 8532824 Dec 3 2009 initrd.buffalo
drwx------. 2 root root 16384 Dec 3 2009 lost+found
-rw-r--r--. 1 root root 403688 Dec 3 2009 u-boot.buffalo
-rw-r--r--. 1 root root 2174552 Dec 3 2009 uImage.buffalo


/sdb2 がOSのルートパーティションみたいですね。

# ls -la
total 40
drwxr-xr-x. 18 root root 4096 May 16 10:39 .
drwxr-xr-x. 8 root root 4096 May 18 15:58 ..
drwxr-xr-x. 2 root root 4096 Oct 23 2009 bin
drwxr-xr-x. 2 root root 6 Oct 23 2009 boot
drwxr-xr-x. 6 root root 8192 May 16 10:39 dev
drwxr-xr-x. 31 root root 4096 May 16 10:39 etc
drwxrwxrwx. 3 root root 17 Oct 23 2009 home
drwxr-xr-x. 2 root root 6 Oct 23 2009 initrd
drwxr-xr-x. 5 root root 4096 Dec 3 2009 lib
drwxrwxrwx. 11 root root 138 May 16 10:39 mnt
drwxr-xr-x. 3 root root 19 May 16 10:39 modules
drwxr-xr-x. 2 root root 6 May 1 2009 proc
drwx------. 3 root root 19 Oct 23 2009 root
drwxr-xr-x. 2 root root 4096 May 16 10:39 sbin
drwxr-xr-x. 2 root root 6 Oct 23 2009 sys
lrwxrwxrwx. 1 root root 8 May 16 10:39 tmp -> /mnt/ram
drwxr-xr-x. 10 root root 95 Oct 23 2009 usr
drwxr-xr-x. 11 root root 131 May 16 10:39 var
drwxr-xr-x. 6 root root 75 Oct 23 2009 www


/var/log/file.smb にSamba経由でアクセしたログが有りました。(700MBほど有りましたが...)
アクセスログを見れるのはTeraStationにならないと見れませんが、実はLinkStationでもログはちゃんと残っていたんですね。
ログは下記のような感じです。

May 15 19:50:25 LS-WXL65B file_smb[23722]: [User:HOGEDOMAIN+user01(10.0.120.21)] File Open(Read/Write) /mnt/array1/共有フォルダA/テスト/test.txt
May 15 19:50:47 LS-WXL65B file_smb[23722]: [User:HOGEDOMAIN+user01(10.0.120.21)] File Open(Read) /mnt/array1/共有フォルダA/テスト/test.txt
May 15 19:50:47 LS-WXL65B file_smb[23722]: [User:HOGEDOMAIN+user01(10.0.120.21)] Remove File /mnt/array1/共有フォルダA/テスト/test.txt

sambaの設定(/etc/samba/smb.conf)見たら、ほんと普通のLinuxのsambaサーバと同じ形式でしたね。

[global]
dos charset = CP932
unix charset = UTF-8
display charset = UTF-8
netbios name = LS-WXL65B
server string = LinkStation
socket options = TCP_NODELAY SO_RCVBUF=262144 SO_SNDBUF=262144
use mmap = yes
use sendfile = yes
os level = 1
wins server = 10.0.0.10

workgroup = HOGEDOMAIN
security = ADS
auth methods = guest sam winbind:ntdomain
realm = HOGEDOMAIN.JP
password server = DC.HOGEDOMAIN.JP
logon path =
logon home =
lm announce = False
local master = No
domain master = False
idmap uid = 10000-11000
idmap gid = 10000-11000
template shell = /bin/bash
template homedir = /home
winbind separator = +
winbind use default domain = yes
winbind enum users = Yes
winbind enum groups = Yes
passdb backend = tdbsam:/etc/samba/smbpasswd.tdb
encrypt passwords = Yes
passwd program = /usr/bin/passwd %u
passwd chat = *New*password* %n\n *Retype*new*password* %n\n *passwd:*all*authentication*tokens*updated*successfully*
unix password sync = yes
unix extensions = no
guest account = nobody
null passwords = yes
guest only = no
password level = 14
map to guest = Bad User

veto files = /.AppleDesktop/Network Trash Folder/TheVolumeSettingsFolder/.AppleDouble/.AppleDB/.com.apple.timemachine.supported/
delete veto files = yes

deadtime = 15
invalid users = mail, deamon
admin users = root
username map = /etc/samba/smbusers

log level = 1
max log size = 0

lock directory = /etc/samba/lock

dos filetimes = Yes
dos filetime resolution = Yes
map archive = Yes
map hidden = No
map system = No
dns proxy = No
show add printer wizard = No
host msdfs = no
disable spoolss = yes
printcap name = /etc/printcap
load printers = yes
printing = lprng

[lp]
comment = Network Printer for Windows
path = /mnt/array1/spool/samba
print command = /usr/bin/lpr -Plp -r %s
printer admin = admin
use client driver = Yes
browsable = yes
printable = yes
public = yes
[info]
comment = LinkStation Utilities
path = /mnt/info
browsable = yes
printable = no
writable = no
guest ok = yes
csc policy = disable
[usbdisk1]
comment = USB Disk1
path = /mnt/usbdisk1
browsable = yes
printable = no
writable = yes
valid users = @HOGEDOMAIN+"admins"
force create mode = 666
force directory mode = 777
csc policy = disable
[ホゲフォルダ]
comment =
path = /mnt/array1/ホゲフォルダ
browsable = yes
printable = no
writable = yes
valid users = @HOGEDOMAIN+"hoge",@HOGEDOMAIN+"admins"
force create mode = 666
force directory mode = 777
csc policy = manual
vfs objects = recycle, audit
recycle:repository = trashbox
recycle:keeptree = 1
recycle:versions = 1
recycle:directory_mode = 777
audit:facility = LOCAL6
audit:priority = INFO
###ホゲフォルダ###

バックアップはcronのログ覗くと、/usr/local/bin/rsbackup.pl で行っているようです。
/usr/local/bin/rsbackup.pl 見てみたら、開発コードらしく修正したデベロッパの名前も載ってました。

バックアップの設定ファイルは /etc/melco/backup1~8 に書いてました。

TeraStaionのRAID5ならこうは行きませんが、RAID1ならディスク2台とも壊れてない限り、簡単にデータ復旧できそうです。

しかし、バッファローのNASの故障率は非常に高いですね。。。LinkStation,復旧で検索すると大量に復旧業者が出てくるくらいです。
まぁ簡易のファイルサーバ的な考えでいないと結構痛い目を見ます。
やはり業務で使うファイルサーバはすべてが冗長化されたちゃんとしたサーバにするのがいいですね。


参考:
@IT:USBのハードディスクを接続するには
ysanolog XFSに関するトラブル対処
partedコマンドで2TB超パーティション作成:Blogっぽいアレ So-net版:So-netブログ
Linkstationで自宅サーバ
Linkstation LS-WS1.0TGL/R1 HDD修復作業: 小物の日記
[PR]
by Jehoshaphat | 2011-10-27 23:54 | Linux | Trackback | Comments(1)
(Linux)LVMパーティションを縮小する方法
CentOS(RedHat系)ではデフォルトでインストールを行うとパーティションにLVMが用いられます。

LVMを使うと複数のディスクにまたがってボリュームを作成できたり、ボリュームのスナップショットも簡単にとれたり便利なんですが、いざ障害がおきたり今回のようにLVMパーティションを縮小しようとすると面倒です。

(LVMについての基本的なことは下記参照)
ITmedia エンタープライズ:特集:LVMによるディスクパーティションの動的化(後編)
LVM とは - Linuxキーワード:ITpro
エンタープライズ:特集:LVMによるディスクパーティションの動的化(前編)
3. LVM(Logical Volume Manager)(第2章ディスク管理~上級:基本管理コースII)
LVM - IT Systemの作り方


さて、今回パーティションは下記のようになっていました。
(HDDがcciss/c0doってなっているのは今回試したのがUrtra-SCSIのサーバだからです。)

/dev/cciss/c0d0p1(ntfs windows用 64GB)
/dev/cciss/c0d0p2(ntfs windows用 21GB)
/dev/cciss/c0d0p3(ext3 centos /boot用 100MB)
/dev/cciss/c0d0p4(拡張領域 55GB)
 /dev/cciss/c0d0p5(LVM用 VolGroup00 55G)


LVM(VolGroup00)の中身は下記のようになっています。

LogVol00 (ext3 centos /用 53GB)
LogVol01 (swap用 2GB)


もともとWindowsサーバを入れてて、後からCentOSをLVMで入れました。
今回、Fedoraを入れたいということで、CentOSで使っているパーティションを縮小してそこに、Fedoraを入れるという要件です。

CentOSで作ったLVMの中身は / 用の ext3 ファイルシステムと、SWAP用ボリュームです。
Pantora Networks ≫ 3章 LVM操作 応用編によると、ext3ファイルシステムの縮小はオフラインでないとできないようです。(全般的にファイルシステムの拡大はオンラインでサポートしている場合が多いようです)

オフラインでやらないといけないということで、CentOSのLiveCDで起動試みたんですがエラーとなったんで、手元にあったUbuntu10.10でCDブートしました。

Ubuntuの場合、デフォルトではLVMにアクセス出来ないのでlvm2パッケージをインストールします。

apt-get install lvm2
lvm vgchange -a y


pvscan や lvscan コマンドでLVMの状態が確認できるので、作業途中随時叩いてみるといいかと思います。

縮小の方法はCentOS で LVM 物理/論理ボリュームサイズを縮小する - maruko2 Noteを参考にさせてもらいました。



ファイルシステムサイズの縮小
まず、ファイルシステムを縮小する必要があるのですが、ファイルシステムをチェックしないと縮小できないので、チェックを行います。

umount /dev/VolGroup00/LogVol00
e2fsck -f /dev/VolGroup00/LogVol00

※CentOSだとLVへのパスは /dev/mapper/VolGroup00-LogVol00 となりますが、Ubuntuだと /dev/VolGroup00/LogVol00 になるようです。

そしてファイルシステムのリサイズを行います。

resize2fs /dev/VolGroup00/LogVol00 43G


論理ボリューム(LV)のサイズ縮小
下記コマンドでLVボリュームを縮小し、確認します。。

lvreduce -L 43G /dev/VolGroup00/LogVol00
lvdisplay /dev/VolGroup00/LogVol00


物理ボリューム(PV)のサイズ縮小

CentOSだと、system-config-lvm コマンドを実行すると、グラフィカルな LVM ツールが起動し論理ボリュームが分かるようですが、Ubuntuの場合はパッケージを入れないと見れないようです。

LogVol00を縮小したので、ボリューム配置的には下記のようになっています。

LogVol00 (ext3 centos /用 43GB)
空き (10GB)
LogVol01 (swap用 2GB)


SWAP用にしている LogVol01 を前方に移動させないといけません。
が、簡単には移動できないようなので一旦このSWAP用LVボリュームを削除して新たに作成するという方法を取ります。

swapoff /dev/VolGroup00/LogVol00 ←SWAPをOFFに
lvremove /dev/VolGroup00/LogVol00 ←LV削除
lvcreate -L 5G -n LogVol01 VolGroup00 ←LV新規作成
mkswap /dev/VolGroup00/LogVol00 ←スワップ作成
swapon /dev/VolGroup00/LogVol00 ←SWAP領域として割り当てる


これでPVの縮小の準備ができました。
下記コマンドでPVの縮小ができます。

pvresize --setphysicalvolumesize 45.1G /dev/cciss/c0d0p5


下記のようなエラーがでたら、指定サイズが小さすぎることになるので、サイズの指定を大きくしてみてください。(メガ単位の指定も可能なようです。45100MB 等)

0 physical volume(s) resized / 1 physical volumes(s) not resized



パーティションの縮小
この段階ではまだパーティション(/dev/VolGroup00)はもとのサイズを保っています。
最後にこれを fdisk を使って縮小します。

fdsik
コマンド (m でヘルプ): p ←パーティション確認

Disk /dev/cciss/c0d0: 145.6 GB, 145667358720 bytes
255 heads, 32 sectors/track, 34866 cylinders
Units = シリンダ数 of 8160 * 512 = 4177920 bytes

デバイス Boot Start End Blocks Id System
/dev/cciss/c0d0p1 * 1 15855 64688384 7 HPFS/NTFS
/dev/cciss/c0d0p2 15856 21179 21721920 7 HPFS/NTFS
/dev/cciss/c0d0p3 21180 21204 102000 83 Linux
/dev/cciss/c0d0p4 21205 34866 55740960 5 拡張領域
/dev/cciss/c0d0p5 21205 34866 55740928 8e Linux LVM


fdisk /dev/cciss/c0d0
コマンド (m でヘルプ): d ←パーティションを削除
領域番号 (1-5): 5 ←5番目を削除

コマンド (m でヘルプ): n ←新規パーティション作成
l 論理(5 以上)
p 基本区画(1-4)
コマンド(mでヘルプ): e ←論理パーティション
最初 シリンダ (21205-34866, 初期値 21205): ←そのままEnter
初期値 21205 を使います
Last シリンダ, +シリンダ数 or +size{K,M,G} (14-7296, 初期値 7296):+45.1G ←PVよりちょっと大きぐらいにしておく


コマンド (m でヘルプ): p

Disk /dev/cciss/c0d0: 145.6 GB, 145667358720 bytes
255 heads, 32 sectors/track, 34866 cylinders
Units = シリンダ数 of 8160 * 512 = 4177920 bytes

デバイス Boot Start End Blocks Id System
/dev/cciss/c0d0p1 * 1 15855 64688384 7 HPFS/NTFS
/dev/cciss/c0d0p2 15856 21179 21721920 7 HPFS/NTFS
/dev/cciss/c0d0p3 21180 21204 102000 83 Linux
/dev/cciss/c0d0p4 21205 34866 55740960 5 拡張領域
/dev/cciss/c0d0p5 21205 32256 45092144 8e Linux LVM


コマンド (m でヘルプ): w


どうやら、パーティションを縮小するには一旦削除し、再度テーブルを定義するという荒業が必要なようですね。

これで、拡張領域に完全な空きができました。

いや、なかなかこれだけするのに苦労しましたよ。。

参考:
LVM領域の縮小 - 間違いだらけの備忘録
Pantora Networks 3章 LVM操作 応用編
[PR]
by Jehoshaphat | 2011-10-27 23:48 | Linux | Trackback | Comments(0)
(VBA)Excelでシートをコピー・削除
Excelでワークシートを複数コピーして、名前を変更し、セルに値を入れるサンプル(SheetCopyプロシージャ)です。
シート名は、For分のループ変数を使います。

また、SheetDelプロシージャはシートの削除を行ってます。


Public Const sBaseSheet = "Sheet1"
Public Const iMaxSheet = 4
 
Sub SheetCopy()
'ループ変数
Dim i As Integer
i = 0

Dim rng As Range
'コピー元のシートを選択
Worksheets("Sheet1").Select

'削除時の確認メッセージをOFFに
Application.DisplayAlerts = False
'画面高速化
Application.ScreenUpdating = False
For i = iMaxSheet To 1 Step -1
'シートをコピーする
ThisWorkbook.Sheets(sBaseSheet).Copy after:=Sheets(sBaseSheet)
'シートの名前をヘンコする
ThisWorkbook.Sheets(sBaseSheet & " (2)").Name = CStr(i)
'セルに値セット
Set rng = ThisWorkbook.Sheets(CStr(i)).Range("A1")
rng.Value = i
Next i
'削除時の確認メーッセージをOnに
Application.DisplayAlerts = True
'画面高速化
Application.ScreenUpdating = True
 
End Sub
 
Sub SheetDel()
Dim i As Integer
i = 0
Dim rng As Range
'削除時の確認メッセージをOFFに
Application.DisplayAlerts = False
'画面高速化
Application.ScreenUpdating = False
 
For i = iMaxSheet To 1 Step -1
'シート削除
ThisWorkbook.Sheets(CStr(i)).Delete
Next i
'削除時の確認メーッセージをOnに
Application.DisplayAlerts = True
'画面高速化
Application.ScreenUpdating = True
End Sub


参考:
ワークシートの追加 - ワークシートの追加 - Excel VBA入門
Office TANAKA - Excel VBA講座:シートの操作[シートを削除する]
Office TANAKA - Excel VBA Tips[ワークシートの名前を変更する]
[PR]
by Jehoshaphat | 2011-10-27 23:45 | VBA、マクロ | Trackback | Comments(0)
Windowsでユーザ環境を別のユーザにも上書きしたい

WindowsPCで hoge というユーザの環境があるとします。
そのユーザ環境(ユーザプロファイル)を、新しくこのPCを使う piyo というユーザにも適用させたいという要件です。

この場合、hoge のユーザプロファイルを piyo にコピーしてやるとOKです。

ただし、ログオンしているユーザ自身のプロファイルはコピー出来ないのでコピー元、コピー先のユーザ以外で作業する必要があります。
XPの場合、マイコンピュータのプロパティ→[詳細設定]タブ→ユーザプロファイルの[設定]→コピー元ユーザを選び、[コピー先]ボタンを押下します。
[コピー先]に、piyo のユーザプロファイルフォルダ(C:\Documents and Settings\piyo)を指定し、[使用を許可するユーザ/グループ]で、piyoにアクセス権を与えます。

これで、piyo でログインすると、hogeのユーザ環境が引き継がれます。

参考:
TechNet:ユーザー プロファイルをコピーする
[PR]
by Jehoshaphat | 2011-10-27 23:43 | 豆知識 | Trackback | Comments(0)
バッチファイルで再起動
バッチファイルで再起動をする方法ですが、shutdownコマンドを使えばOKです。

下記のようにバッチ実行時に確認を取るようにしています。


@echo off
echo "再起動を実行しますか? yes/no"
set /p FLG="y か n を入力:"
 
if "%FLG%"=="y" (goto :LBL_REBOOT)

if "%FLG%"=="Y" ( goto :LBL_REBOOT)
 
exit
 

:LBL_REBOOT
shutdown /r /f /t 15 -c "再起動を行います。"


実行には管理者権限が必要になるので、 (.Net)別ユーザでプロセスを起動するなどを参考にして、別ユーザで動かすexeをはさむといいでしょう。


参考:
コマンドラインから電源オフや休止を実行する - @IT
[PR]
by Jehoshaphat | 2011-10-27 23:43 | 豆知識 | Trackback | Comments(0)