2008年4月アーカイブ

■Exchange 2007 の ESE データベース キャッシュ サイズ
http://technet.microsoft.com/ja-jp/library/bb691304(EXCHG.80).aspx

によると、

・データベース キャッシュの最大サイズが既定で設定されていないため、DBのI/Oに負荷がかかっている場合は、ESEにより、RAMの使用量はどんどん増えていく。

 つまり、store.exeは、キャッシュのために使えるだけメモリを使用するようになっている。


・RAMの使用量の増加を必要とするほどデータベース I/O に負荷がない場合は、ESE によってキャッシュのサイズが増加されることはない。


・Windowsのシステムキャッシュ、他のアプリケーションがメモリを要求する場合には、ESEにより、必要な分までデータベース キャッシュのサイズは減少する


・Exchange 2007 の既定による最小のデータベース キャッシュ サイズは、2 GB の RAM を持つサーバー上で 512 MB


なのだそうです。
ちなみに、ESEというのは、Extensible Storage Engine:拡張ストレージ・エンジン のこと。

それで、ADSI Editによって、CacheSizeの最大値、最小値を設定することが可能です。

Configuration/Services/Microsoft Exchange/<組織>/Administrative Groups/<管理グループ>/Servers/<サーバー名>/Information Store

Exchange 2003 でも同じでしたね。今回は/3GBはないですけど。

たとえば、CentOS5のApacheなんかだと、最初からsuexecが有効になっています。

# suexec -V
 -D AP_DOC_ROOT="/var/www"
 -D AP_GID_MIN=100
 -D AP_HTTPD_USER="apache"
 -D AP_LOG_EXEC="/var/log/httpd/suexec.log"
 -D AP_SAFE_PATH="/usr/local/bin:/usr/bin:/bin"
 -D AP_UID_MIN=500
 -D AP_USERDIR_SUFFIX="public_html"


まあ、コンパイル時に有効になっていますからね。仕方がないってものです。

# httpd -V
Server version: Apache/2.2.3
Server built:   Jan 15 2008 20:33:30
Server's Module Magic Number: 20051115:3
Server loaded:  APR 1.2.7, APR-Util 1.2.7
Compiled using: APR 1.2.7, APR-Util 1.2.7
Architecture:   32-bit
Server MPM:     Prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APACHE_MPM_DIR="server/mpm/prefork"
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_SYSVSEM_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=128
 -D HTTPD_ROOT="/etc/httpd"
 -D SUEXEC_BIN="/usr/sbin/suexec"
 -D DEFAULT_PIDLOG="logs/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_LOCKFILE="logs/accept.lock"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="conf/mime.types"
 -D SERVER_CONFIG_FILE="conf/httpd.conf"


しかし、suexecは無効にしてしまいます。

# cd /usr/sbin
# mv suexec suexec.disabled
# /etc/init.d/httpd restart


多アカウント環境のApacheで、代わりになにを使うかというと、
mod_ruidがいいかもしれません。
http://websupport.sk/~stanojr/projects/mod_ruid/

インストールの仕方は超簡単 最初にlibcapと、apxsがすでに入っていることを確認してください。

# rpm -qa | grep libcap
libcap-1.10-26
libcap-devel-1.10-26

# which apxs /usr/sbin/apxs

# apxsはhttpd-devel.i386パッケージに入っています。 # libcapもhttpd-develもなかったらyumなどでインストールしてください


ダウンロードしてインストールします。

# wget http://websupport.sk/~stanojr/projects/mod_ruid/mod_ruid-0.6.tar.gz
# tar xvzf mod_ruid-0.6.tar.gz
# cd mod_ruid-0.6
# apxs -a -i -l cap -c mod_ruid.c
# /etc/init.d/httpd restart
httpd.confにはすでにモジュールをロードする設定が書き込まれています。
#
# The following modules are not loaded by default:
#
#LoadModule cern_meta_module modules/mod_cern_meta.so
#LoadModule asis_module modules/mod_asis.so
LoadModule ruid_module        /usr/lib/httpd/modules/mod_ruid.so


Defaultの設定でstat
(ファイルの所有者のユーザーにsetuid/setgidされる)になっているので、
特に追記せず、そのままでも動きます。

とはいうものの、デフォルトの状態では最小のuidとgidは100になっているので、 uidが48になっていたりする、'apache'は使用されません。 なので、
RDefaultUidGid  apache apache
こういう設定が一行必要になってくるでしょう。


ただし、suexecと違って、public_htmlだけに効くとかいうわけではなく、
もう、全部に効いてしまうので、すでに動いているシステムに導入するには
(特にCGIの)注意が必要でしょう。

VirtualHostのディレクティブの中には 下記のように固定の設定を仕込んでもよいでしょう。
RMode          config
RUidGid        username groupname

Exchange2000や、2003では、
Exchangeシステムマネージャの「メールボックス」フォルダを
開けば
すぐにみれたんですが。。。

Exchange2007では、Exchange管理シェルからコマンドです。

> get-mailboxfolderstatistics -Identity kuwazou | 
>> Where { $_.Name -eq "Top of Information Store" }
>>

Date          : 2008/04/12 15:04:02 Name          : Top of Information Store Identity         : kuwazou\ FolderPath      : / FolderId        :LgAAAACCh5uEPzGtQKe7e1ipPvE7AQA5o FolderType      : Root ItemsInFolder     : 0 FolderSize      : 0B ItemsInFolderAndSubfolders : 165777 FolderAndSubfolderSize : 814855014B OldestItemReceivedDate : NewestItemReceivedDate : ManagedFolder :

814855014B = 814855KB = 814.9MB
っていうところでしょうか。

Exchange 2000や、2003までは、
ユーザーなどのオブジェクトに関連付けられているメールボックスを削除する操作をした場合、
すぐには削除されず、
普通、最初の1日(メールボックスストアの保守時間がくるまで)は
そのままどこかと関連付けられていたような状態になっていて何も操作できず、
Exchangeシステムマネージャから、「メールボックス」フォルダを右クリックして、
「クリーンアップエージェントの実行」をしていたものです。


しかし、2007になったら、GUI(Exchange管理コンソール)上からはクリーンアップエージェントはできなくなりました。


そこで、Exchange管理シェルから、コマンドを入力することになります。

>Clean-MailboxDatabase "Mailbox Database"

これだけですけど。


これで、Exchange管理コンソール上の「切断されたメールボックス」に関連付けがされていないメールボックスが表示されます。


再び関連付けを行ったり、完全に削除するにはGUIからの方が楽でしょう。

これはほんとにメモ書きです。

○テンプレート:メインページ、アーカイブインデックス
 body_classの初期値を削除

<MTSetVar name="body_class" value="">


○テンプレート:ヘッダー
 default=layout-wttをtwtに。

body class="
 <MTIf name="body_class">
  <$MTGetVar name="body_class"$> 
 </MTIf>
<$MTGetVar name="page_layout" default="layout-twt"$>"
 <MTIf name="body_onload">
  onload="<$MTGetVar name="body_onload"$>"
 </MTIf>
>


○テンプレート:フッター
 読み込むmoduleを「サイドバー」から「サイドバー(3カラム)」へ

<MTIf name="sidebar">
 <$MTInclude module="サイドバー (3カラム)"$>
</MTIf>


○テンプレート:サイドバー (3カラム)
 下記を削除し、右カラムの「最近のブログ記事」がすべての画面で出力されるようにした

<MTIf name="module_recent_entries">
</MTIf>

<MTIf name="main_index">
</MTIf>


○mt-static/themes-base/blog.css
 preタグの中身を目立つようにし、commentを目立たせるようにした。

pre
{
        /*font-family:  Courier, 'trebuchet ms',helvetica, arial, sans-serif;*/
        font-size: 12px;
        /* letter-spacing: 1px; */
        background-color: #E6E6E6;
        border: 1px #A80101 solid;
        border-collapse: collapse;
        padding: 3px 3px 3px 3px;
        /*overflow: auto;
        scrollbar-face-color:#ff7f00*/

/*white-space: -moz-pre-wrap;*/ /* Mozilla */ white-space: -pre-wrap;*/ /* Opera 4-6 */ white-space: -o-pre-wrap;*/ /* Opera 7 */ white-space: pre-wrap;*/ /* CSS3 */ word-wrap: break-word;*/ /* IE 5.5+ */ }

.comment { color: #330099; }


○preタグの中に改行がなるだけ追加されないようにする

こちらのブログを参考にさせていただいてます。
http://blog.nizah.net/archives/cat_movabletype.html

sub html_text_transform {
    my $str = shift;
    $str = '' unless defined $str;

# edit by kuwa $str =~ s/\x0D\x0A/\n/g; $str =~ tr/\x0D\x0A/\n\n/; my @paras = split /\n\n/, $str;

# add by kuwa # reffered by http://blog.nizah.net/archives/cat_movabletype.html my $preflag = 0;

for my $p (@paras) {

# add pre check by kuwa if($p =~ m@<pre@) { $preflag = 1; } if(($p =~ m@<pre@)&&($p =~ m@<\/pre@)){ $preflag = 2; }

# add pre check by kuwa if (($preflag == 0) and $p !~ m@^</?(?:h1|h2|h3|h4|h5|h6|table|ol|dl|ul|menu|dir|p|pre|center|form|fieldset|select|blockquote|address|div|hr)@) { $p =~ s!\r?\n!<br \/>\n!g; $p = "<p>$p</p>"; } if ($preflag == 1) { $p =~ s!\r?\n!\n!g; $p = "<p>$p<\/p>"; } if ($preflag == 2) { $p =~ s/<\/pre\>\r?\n/<\/pre\>/g; #$p =~ s!\r?\n!<br \/>\n!g; } if($p =~ m@<\/pre@) { $preflag = 0; }

} join "\n\n", @paras; }

Server CoreでFirewallを無効にするには?

|

無効にしちゃっていいのかどうかは別として、
これをやると通信ができない場合の切り分けにはなります。

> netsh advfirewall set currentprofile state off 

もうFirewallなんていらないのなら、全部きってしまいます。

> netsh advfirewall set allprofiles state off 

"profile(s)"が、単数、複数の区別があるので注意してください。


 

Exchange Server 2007のhelpで
「フォレスト間でメールボックスを移動する方法」を検索してみるのが一番よいですが、
一応書いておきます。

環境は、移行元、移行先、互いに1フォレスト1ドメイン1Exchange組織の環境です。
WIndows Server 2003 SP2 + Exchange Server 2003 SP2
  ↓
Windows Server 2008 + Exchange Server 2007 SP1


1.前段階としては、フォレスト間信頼が完全に構築されている必要があります

※「代わりのUPNサフィックス」が両方のフォレストに同じものが登録されていると、信頼関係はうまく結べても、実質、信頼関係が機能しなくなる場合があるのでご注意。
この場合は、重複するUPNサフィックスを削除して、また信頼関係を壊して、作り直してください。


2.つぎに、ADMT3.0を使用して、ユーザーオブジェクトを移行します

ちなみにWindows Server 2003と、Windows Server 2008では、
ドメインとフォレストの機能レベルに注意しながらADMT3.0を2003側にインストールします。
この実験では機能レベルは2003に統一しました。

機能レベルを2007にすると、フォレスト間の信頼関係を結んだ時点で
2003側から2007側が見えなかったりして、あまりうまくいきませんでした。

こちらも参考にしてください。
ADMT v3.0 による Windows Server 2008 への移行について

大雑把に言えば、1フォレスト1ドメインのような単純な環境同士であれば、
Administratorsグループにいるユーザー(Administratorも可)を、
相手先ドメインのAdministratorsグループに加えて、
これをお互いのドメインで実行して、
両方のドメイン(実質フォレスト)に管理権限のあるユーザーをつくり、
そのユーザーでADMTを実行すればよいでしょう。


3.$SourceCredential = Get-Credential

「Exchange管理シェル」で、下記のコマンドを使い、
シェル変数? -SourceForestCredential に
移行元のExchange組織に対して、全権のあるアカウント情報を格納しておきます。

Exchange Serverの組織の権限を色々と変更していなければ、
移行元ドメインのAdministratorで十分で大丈夫でしょう。

$SourceCredential = Get-Credential
ここで、
アカウント「IKOU-MOTO\Administrator」
「それに対するパスワード」を入力する


4.$TargetCredential = Get-Credential

-SourceForestCredential に
移行先のExchange組織に対して、全権のあるアカウント情報を格納しておきます。
移行先ドメインに管理権限のあるAdministratorで大丈夫でしょう。

$TargetCredential = Get-Credential
ここで、
アカウント「IKOU-SAKI\Administrator」
「それに対するパスワード」を入力する


■確認

 > echo $SourceCredential
IKOU-MOTO\administrator
> echo $TargetCredential = Get-Credential
IKOU-SAKI\administrator
と出力されればOK。


5.Move-Mailboxコマンド

普通はこれでメールボックスの移動ができるのですが、
コピペしながらコマンドを修正して打ち込もうとしても、
なかなかエラーが消えなくてうまくいきません。

というのは、このExchange管理シェル、
コピペをすると、改行付近の文字がなくなってしまいます。

だから、エラーが消えなかったら、そこの部分をじっくりみて、
文字列が崩れていないかをチェックするのがよいでしょう。

何回も修正して、エラーが出なくなったらやっと下記のように成功します。

[PS] C:\>Move-Mailbox
 -TargetDatabase "EX-2007\First Storage Group\Mailbox Database"
 -Identity kuwazou 
 -GlobalCatalog EX-2007.ikou-saki.kuwazou.net
 -SourceForestGlobalCatalog EX-2003.ikou-moto.kuwazou.net
 -NTAccountOU "OU=Users,DC=ikou-saki,DC=kuwazou,DC=net"
 -SourceForestCredential $SourceCredential
 -TargetForestCredential $TargetCedential

確認 この操作を実行しますか?

メールボックス くわぞう を データベース EX-2007\FirstStorage Group\Mailbox Database に移動しています。 この操作では、メールボックスの Active Directory構成のみが変更されます。 メールボックスのコンテンツは失われる可能性があります。 変更が完了するまでこのメールボックスにアクセスすることはできません。

[Y] はい(Y) [A] すべて続行(A) [N] いいえ(N) [L] すべて無視(L) [S] 中断(S) [?] ヘルプ(既定値は "Y"): y

ここで、Yを押すと、メールボックスの移動(といっても、コピーである。もとはなくならない)が始まる。 画面上には、
kuwazou
    メメッッセセーージジをを移移動動ししてていいまますす。。 ふぉふぉるるだだ (35/512)
    [oooooo          ]
(原文ママ)というメッセージで移動中なのがわかる。 相変わらず、結構時間はかかる。 終了すると、このようなメッセージがでる。
StatusMessage : このメールボックスは移動先のデータベースに移動されました。
ReportFile : C:\Program Files\Microsoft\Exchange Server\Logging\MigrationLogs\move-Mailbox20080325-012026-2736001.xml

※上記のコマンドでは、ユーザーオブジェクトがすでにメールボックスを持っている場合には
エラーとなってしまうが、-AllowMerge オプションをつけることによって、内容をマージすることができる。

このアーカイブについて

このページには、2008年4月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2008年3月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 4.1