免許の更新に行ってきました。
あー、めっちゃ目が悪くなってるー。
2002/03/22
メモ。
I finally traced the problem down to a file in the STLPort. The header "stl/_threads.h" has function prototypes for InterlockedIncrement, InterlockedDecrement, and InterlockedExcahange which are set based on the compiler version instead of the library version.
#if (_MSC_VER >= 1300)
The problem is that I'm running _MSC_VER=1200, but now I have the latest Platform SDK, which uses the 1300+ declarations of the afore mentioned functions. My temporary fix was to change the line to
#if (_MSC_VER >= 1200)
until the maintainers of the STLPort release a patch.
I finally traced the problem down to a file in the STLPort. The header "stl/_threads.h" has function prototypes for InterlockedIncrement, InterlockedDecrement, and InterlockedExcahange which are set based on the compiler version instead of the library version.
#if (_MSC_VER >= 1300)
The problem is that I'm running _MSC_VER=1200, but now I have the latest Platform SDK, which uses the 1300+ declarations of the afore mentioned functions. My temporary fix was to change the line to
#if (_MSC_VER >= 1200)
until the maintainers of the STLPort release a patch.
/stlport/stl/_threads.h
#if (_MSC_VER >= 1200/*1300*/) || defined (_STLP_NEW_PLATFORM_SDK)
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long volatile *);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long volatile *);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long volatile *, long);
#else
// boris : for the latest SDK, you may actually need the other version of the declaration (above)
// even for earlier VC++ versions. There is no way to tell SDK versions apart, sorry ...
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long*);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long*);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long*, long);
#endif
#if (_MSC_VER >= 1200/*1300*/) || defined (_STLP_NEW_PLATFORM_SDK)
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long volatile *);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long volatile *);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long volatile *, long);
#else
// boris : for the latest SDK, you may actually need the other version of the declaration (above)
// even for earlier VC++ versions. There is no way to tell SDK versions apart, sorry ...
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedIncrement(long*);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedDecrement(long*);
_STLP_IMPORT_DECLSPEC long _STLP_STDCALL InterlockedExchange(long*, long);
#endif
2002/03/21
今日は図が一杯で賑やかです。
バックアップも量が多くなるとだり~ってことで、何とか解決策を考える。
ちゃんとしたRAIDシステムとまでは行かなくても、ディスクのミラーリング機能を使って、ハードウェア障害に対応しようかと。
現在のファイルサーバ構成は
というディスク2台構成だったのですが、これを
と3台構成にしてみようと計画しました。
ドライブは既に予備の物を買ってあった(いつでも障害に対応できるように購入してある時点で泣けてきますが)ので、朝から早速作業開始。
ハードの増設はおてのもの。フロントパネルからドライブの取り外しが出来るドッキングマウントを取り付けてディスクの増設。
そしてドライブの認識。ここからがちと面倒。
この時点での構成。
システムを起動したドライブを移動しないといけないんですよね。
そういうツールも色々発売されているのですが、このサーバはダイナミックディスクで構成してしまっているので、市販のツールは使えない模様(現時点で使えるものってないですよね?)
そこでダイナミックディスクの利点を生かして、まずシステムのドライブをミラーリングします。
サーバで動いているサービスを順に止めデータドライブへアクセスするものをなくします。
ディスク2の残り領域も確保し、データ2のドライブを作成します。
D:データドライブとM:待避データドライブの内容をE:データ2ドライブへ移動します。
ここでサーバを落として、ディスクの物理的接続を変更します
今回は、マザーボード側のプライマリケーブルとセカンダリケーブルの接続を入れ替えるだけでした。
そして、ディスク1のC:システムドライブ領域のミラーリングを解除します。
続けてD:データドライブ領域、M:待避データドライブ領域も解放します。
あとは、ディスク1とディスク2でミラーリングされたデータドライブを作成してデータを戻して完成。
一部フォルダの管理が変わったので、設定をちょこっと直してサーバ再スタート!!
バックアップも量が多くなるとだり~ってことで、何とか解決策を考える。
ちゃんとしたRAIDシステムとまでは行かなくても、ディスクのミラーリング機能を使って、ハードウェア障害に対応しようかと。
現在のファイルサーバ構成は
| ディスク0 20GB | C:システム 8GB | D:データ ストライプ12GB | ||||||||||||||||||
| ディスク1 20GB | D:データ ストライプ12GB | M:待避データ 8GB | ||||||||||||||||||
| ディスク0 60GB | C:システム 8GB | E:データ2 52GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | D:データ ミラー20GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク2 20GB | D:データ ミラー20GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ドライブは既に予備の物を買ってあった(いつでも障害に対応できるように購入してある時点で泣けてきますが)ので、朝から早速作業開始。
ハードの増設はおてのもの。フロントパネルからドライブの取り外しが出来るドッキングマウントを取り付けてディスクの増設。
そしてドライブの認識。ここからがちと面倒。
この時点での構成。
| ディスク0 20GB | C:システム 8GB | D:データ ストライプ12GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | D:データ ストライプ12GB | M:待避データ 8GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 60GB | 未使用の領域 60GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
そういうツールも色々発売されているのですが、このサーバはダイナミックディスクで構成してしまっているので、市販のツールは使えない模様(現時点で使えるものってないですよね?)
そこでダイナミックディスクの利点を生かして、まずシステムのドライブをミラーリングします。
| ディスク0 20GB | C:システム ミラー8GB | D:データ ストライプ12GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | D:データ ストライプ12GB | M:待避データ 8GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク2 20GB | C:システム ミラー8GB | 未使用の領域 52GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ディスク2の残り領域も確保し、データ2のドライブを作成します。
D:データドライブとM:待避データドライブの内容をE:データ2ドライブへ移動します。
| ディスク0 20GB | C:システム ミラー8GB | D:データ ストライプ12GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | D:データ ストライプ12GB | M:待避データ 8GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク2 60GB | C:システム ミラー8GB | E:データ2 52GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
ここでサーバを落として、ディスクの物理的接続を変更します
今回は、マザーボード側のプライマリケーブルとセカンダリケーブルの接続を入れ替えるだけでした。
| ディスク0 60GB | C:システム ミラー8GB | E:データ2 52GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | C:システム ミラー8GB | D:データ ストライプ12GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク2 20GB | D:データ ストライプ12GB | M:待避データ 8GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
続けてD:データドライブ領域、M:待避データドライブ領域も解放します。
| ディスク0 60GB | C:システム ミラー8GB | E:データ2 52GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | 未使用の領域 20GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク2 20GB | 未使用の領域 20GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
あとは、ディスク1とディスク2でミラーリングされたデータドライブを作成してデータを戻して完成。
一部フォルダの管理が変わったので、設定をちょこっと直してサーバ再スタート!!
| ディスク0 60GB | C:システム 8GB | E:データ2 52GB | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク1 20GB | D:データ ミラー20GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ディスク2 20GB | D:データ ミラー20GB | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
2002/03/20
2002/03/19
2002/03/17
登録:
投稿 (Atom)




