diff --git a/ja_JP.eucJP/man/man1/builtin.1 b/ja_JP.eucJP/man/man1/builtin.1 index 9b68790c23..2402bdf752 100644 --- a/ja_JP.eucJP/man/man1/builtin.1 +++ b/ja_JP.eucJP/man/man1/builtin.1 @@ -1,286 +1,286 @@ .\" .\" Copyright (c) 1999 Sheldon Hearn .\" .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE AUTHOR OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man1/builtin.1,v 1.5.2.7 2001/04/19 11:19:14 sheldonh Exp % +.\" %FreeBSD: src/share/man/man1/builtin.1,v 1.5.2.8 2001/05/02 02:18:15 dd Exp % .\" -.\" jpman %Id: builtin.1,v 0.0 1999/12/11 15:12:46 horikawa Stab % +.\" $FreeBSD:$ .Dd September 1, 1999 .Dt BUILTIN 1 .Os .Sh 名称 .Nm builtin , .Nm alias , .Nm alloc , .Nm bg , .Nm bindkey , .Nm break , .Nm breaksw , .Nm builtins , .Nm case , .Nm cd , .Nm chdir , .Nm command , .Nm complete , .Nm continue , .Nm default , .Nm dirs , .Nm do , .Nm done , .Nm echo , .Nm echotc , .Nm elif , .Nm else , .Nm end , .Nm endif , .Nm endsw , .Nm esac , .Nm eval , .Nm exec , .Nm exit , .Nm export , .Nm fc , .Nm fg , .Nm filetest , .Nm fi , .Nm for , .Nm foreach , .Nm getopts , .Nm glob , .Nm goto , .Nm hash , .Nm hashstat , .Nm history , .Nm hup , .Nm if , .Nm jobid , .Nm jobs , .Nm kill , .Nm limit , .Nm log , .Nm login , .Nm logout , .Nm ls-F , .Nm nice , .Nm nohup , .Nm notify , .Nm onintr , .Nm popd , .Nm printf , .Nm printenv , .Nm pushd , .Nm pwd , .Nm read , .Nm readonly , .Nm rehash , .Nm repeat , .Nm sched , .Nm set , .Nm setenv , .Nm settc , .Nm setty , .Nm setvar , .Nm shift , .Nm source , .Nm stop , .Nm suspend , .Nm switch , .Nm telltc , .Nm then , .Nm time , .Nm trap , .Nm type , .Nm ulimit , .Nm umask , .Nm unalias , .Nm uncomplete , .Nm unhash , .Nm unlimit , .Nm unset , .Nm unsetenv , .Nm until , .Nm wait , .Nm where , .Nm which , .Nm while .Nd シェル組み込みコマンド .Sh 書式 .Nm .Op Fl options .Op Ar args ... .Sh 解説 シェル組み込みコマンドは、実行中のシェルプロセス内で実行されるコマンドです。 .Xr csh 1 組み込みコマンドの場合、 パイプラインの構成要素として登場する場合には、 最後の構成要素である場合を除き、コマンドはサブシェル内で実行されます。 .Pp シェルに対して指定されたコマンドがスラッシュ .Dq \&/ を含む場合、 指定したコマンドの最後の部分が組み込みコマンドの名前とマッチする場合でも、 シェルは組み込みコマンドを実行しません。 それ故、組み込み echo コマンドをサポートするシェルでは .Dq Ic echo は組み込みコマンドを実行させますが、 .Dq Pa /bin/echo や .Dq Pa ./echo は組み込みコマンドを実行させません。 .Pp 複数のシェルに存在する組み込みコマンドもありますが、 それらの動作はこれをサポートする各シェルで異なるかもしれません。 下表は、シェル組み込みコマンドと、これらをサポートする標準シェルと、 独立ユーティリティとして存在するか否かを列挙しています .Pp ここには .Xr csh 1 と .Xr sh 1 の組み込みコマンドだけを列挙しています。 これらのシェルのもとでの各組み込みコマンドの動作の詳細は、 適切なマニュアルページを参照してください。 他のシェルのユーザは、 そのシェルと共に提供される文書を参照する必要があるでしょう。 .Bl -column "continueXX" "ExternalXX" "csh(1)" "sh(1)" -offset indent .It Xo .Em "コマンド 外部" Ta Xr csh 1 Ta Xr sh 1 .Xc .It Ic alias Ta \&No Ta Yes Ta Yes .It Ic alloc Ta \&No Ta Yes Ta \&No .It Ic bg Ta \&No Ta Yes Ta Yes .It Ic bindkey Ta \&No Ta Yes Ta \&No -.It Ic break Ta \&No Ta Yes Ta \&No +.It Ic break Ta \&No Ta Yes Ta \&Yes .It Ic breaksw Ta \&No Ta Yes Ta \&No .It Ic builtins Ta \&No Ta Yes Ta \&No .It Ic case Ta \&No Ta Yes Ta Yes .It Ic cd Ta \&No Ta Yes Ta Yes -.It Ic chdir Ta \&No Ta Yes Ta \&No +.It Ic chdir Ta \&No Ta Yes Ta \&Yes .It Ic command Ta \&No Ta \&No Ta Yes .It Ic complete Ta \&No Ta Yes Ta \&No -.It Ic continue Ta \&No Ta Yes Ta \&No +.It Ic continue Ta \&No Ta Yes Ta \&Yes .It Ic default Ta \&No Ta Yes Ta \&No .It Ic dirs Ta \&No Ta Yes Ta \&No .It Ic do Ta \&No Ta \&No Ta Yes .It Ic done Ta \&No Ta \&No Ta Yes .It Ic echo Ta Yes Ta Yes Ta Yes .It Ic echotc Ta \&No Ta Yes Ta \&No .It Ic elif Ta \&No Ta \&No Ta Yes -.It Ic else Ta \&No Ta Yes Ta \&No +.It Ic else Ta \&No Ta Yes Ta \&Yes .It Ic end Ta \&No Ta Yes Ta \&No .It Ic endif Ta \&No Ta Yes Ta \&No .It Ic endsw Ta \&No Ta Yes Ta \&No .It Ic esac Ta \&No Ta \&No Ta Yes .It Ic eval Ta \&No Ta Yes Ta Yes .It Ic exec Ta \&No Ta Yes Ta Yes .It Ic exit Ta \&No Ta Yes Ta Yes .It Ic export Ta \&No Ta \&No Ta Yes .It Ic fc Ta \&No Ta \&No Ta Yes .It Ic fg Ta \&No Ta Yes Ta Yes .It Ic filetest Ta \&No Ta Yes Ta \&No .It Ic fi Ta \&No Ta \&No Ta Yes .It Ic for Ta \&No Ta \&No Ta Yes .It Ic foreach Ta \&No Ta Yes Ta \&No .It Ic getopts Ta \&No Ta \&No Ta Yes .It Ic glob Ta \&No Ta Yes Ta \&No .It Ic goto Ta \&No Ta Yes Ta \&No .It Ic hash Ta \&No Ta \&No Ta Yes .It Ic hashstat Ta \&No Ta Yes Ta \&No .It Ic history Ta \&No Ta Yes Ta \&No .It Ic hup Ta \&No Ta Yes Ta \&No .It Ic if Ta \&No Ta Yes Ta \&Yes .It Ic jobid Ta \&No Ta \&No Ta Yes .It Ic jobs Ta \&No Ta Yes Ta Yes .It Ic kill Ta Yes Ta Yes Ta \&No .It Ic limit Ta \&No Ta Yes Ta \&No .It Ic log Ta \&No Ta Yes Ta \&No .It Ic login Ta Yes Ta Yes Ta \&No .It Ic logout Ta \&No Ta Yes Ta \&No .It Ic ls-F Ta \&No Ta Yes Ta \&No .It Ic nice Ta Yes Ta Yes Ta \&No .It Ic nohup Ta Yes Ta Yes Ta \&No .It Ic notify Ta \&No Ta Yes Ta \&No .It Ic onintr Ta \&No Ta Yes Ta \&No .It Ic popd Ta \&No Ta Yes Ta \&No .It Ic printenv Ta Yes Ta Yes Ta \&No .It Ic printf Ta Yes Ta \&No Ta Yes .It Ic pushd Ta \&No Ta Yes Ta \&No .It Ic pwd Ta Yes Ta \&No Ta Yes .It Ic read Ta \&No Ta \&No Ta Yes .It Ic readonly Ta \&No Ta \&No Ta Yes .It Ic rehash Ta \&No Ta Yes Ta \&No .It Ic repeat Ta \&No Ta Yes Ta \&No .It Ic sched Ta \&No Ta Yes Ta \&No .It Ic set Ta \&No Ta Yes Ta \&Yes .It Ic setenv Ta \&No Ta Yes Ta \&No .It Ic settc Ta \&No Ta Yes Ta \&No .It Ic setty Ta \&No Ta Yes Ta \&No .It Ic setvar Ta \&No Ta \&No Ta Yes .It Ic shift Ta \&No Ta Yes Ta Yes .It Ic source Ta \&No Ta Yes Ta \&No .It Ic stop Ta \&No Ta Yes Ta \&No .It Ic suspend Ta \&No Ta Yes Ta \&No .It Ic switch Ta \&No Ta Yes Ta \&No .It Ic telltc Ta \&No Ta Yes Ta \&No .It Ic then Ta \&No Ta \&No Ta Yes .It Ic time Ta Yes Ta Yes Ta \&No .It Ic trap Ta \&No Ta \&No Ta Yes .It Ic type Ta \&No Ta \&No Ta Yes .It Ic ulimit Ta \&No Ta \&No Ta Yes .It Ic umask Ta \&No Ta Yes Ta Yes .It Ic unalias Ta \&No Ta Yes Ta Yes .It Ic uncomplete Ta \&No Ta Yes Ta \&No .It Ic unhash Ta \&No Ta Yes Ta \&No .It Ic unlimit Ta \&No Ta Yes Ta \&No .It Ic unset Ta \&No Ta Yes Ta Yes .It Ic unsetenv Ta \&No Ta Yes Ta \&No .It Ic until Ta \&No Ta \&No Ta Yes .It Ic wait Ta \&No Ta Yes Ta Yes .It Ic where Ta \&No Ta Yes Ta \&No .It Ic which Ta Yes Ta Yes Ta \&No -.It Ic while Ta \&No Ta Yes Ta \&No +.It Ic while Ta \&No Ta Yes Ta \&Yes .El .Sh 関連項目 .Xr csh 1 , .Xr echo 1 , .Xr kill 1 , .Xr login 1 , .Xr nice 1 , .Xr nohup 1 , .Xr printenv 1 , .Xr printf 1 , .Xr pwd 1 , .Xr sh 1 , .Xr time 1 , .Xr which 1 .Sh 歴史 .Nm マニュアルページが最初に登場したのは .Fx 3.4 です。 .Sh 作者 このマニュアルページは .An Sheldon Hearn Aq sheldonh@FreeBSD.org が書きました。 diff --git a/ja_JP.eucJP/man/man2/statfs.2 b/ja_JP.eucJP/man/man2/statfs.2 index a494eb8c74..b0c3a67e2c 100644 --- a/ja_JP.eucJP/man/man2/statfs.2 +++ b/ja_JP.eucJP/man/man2/statfs.2 @@ -1,188 +1,189 @@ .\" Copyright (c) 1989, 1991, 1993 .\" The Regents of the University of California. All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by the University of .\" California, Berkeley and its contributors. .\" 4. Neither the name of the University nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" .\" @(#)statfs.2 8.5 (Berkeley) 5/24/95 -.\" %FreeBSD: src/lib/libc/sys/statfs.2,v 1.9.2.4 2000/12/29 14:44:54 ru Exp % +.\" %FreeBSD: src/lib/libc/sys/statfs.2,v 1.9.2.5 2001/05/01 13:07:25 dwmalone Exp % .\" .Dd May 24, 1995 .Dt STATFS 2 .Os .Sh 名称 .Nm statfs .Nd ファイルシステムの統計を入手 .Sh ライブラリ .Lb libc .Sh 書式 .Fd #include .Fd #include .Ft int .Fn statfs "const char *path" "struct statfs *buf" .Ft int .Fn fstatfs "int fd" "struct statfs *buf" .Sh 解説 .Fn statfs は、マウントされているファイルシステムの情報を戻します。 .Fa path は、マウントされているファイルシステム内の任意のファイルのパス名です。 .Fa buf は、以下のように定義 されている .Fn statfs の構造体のポインタです。 .Bd -literal typedef struct fsid { int32_t val[2]; } fsid_t; /* ファイルシステム ID 型 */ /* * ファイルシステム統計 */ #define MFSNAMELEN 16 /* ヌルを含むファイルシステム名の長さ */ #define MNAMELEN 90 /* 戻り値の用のバッファの長さ */ struct statfs { -long f_spare2; /* プレイスホルダー */ long f_bsize; /* ファイルシステムのブロックサイズ */ long f_iosize; /* 最適なトランスファーブロックサイズ */ long f_blocks; /* ファイルシステム上の合計ブロックサイズ */ long f_bfree; /* ファイルシステム上の利用可能なブロック */ long f_bavail; /* スーパユーザ以外が利用可能なブロック */ long f_files; /* ファイルシステム上の合計ノード数 */ long f_ffree; /* ファイルシステム上の利用可能なノード数 */ fsid_t f_fsid; /* ファイルシステム ID 番号 */ uid_t f_owner; /* ファイルシステムをマウントしたユーザ */ -int f_type; /* ファイルシステムのタイプ (下記参照) */ +int f_type; /* ファイルシステムのタイプ */ int f_flags; /* マウントフラッグのコピー */ long f_syncwrites; /* マウントしてからの同期書き込み数 */ long f_asyncwrites; /* マウントしてからの非同期書き込み数 */ char f_fstypename[MFSNAMELEN];/* ファイルシステムタイプ名 */ -char f_mntonname[MNAMELEN]; /* マウントポイント */ -char f_mntfromname[MNAMELEN]; /* マウントされたファイルシステム */ +char f_mntonname[MNAMELEN]; /* マウントポイント */ +long f_syncreads; /* マウント以降の同期読み取り数 */ +long f_asyncreads; /* マウント以降の非同期読み取り数 */ +char f_mntfromname[MNAMELEN]; /* マウントされたファイルシステム */ }; .Ed 戻される可能性があるフラグは以下のとおりです。 -.Bl -tag -width MNT_ASYNCHRONOUS +.Bl -tag -width MNT_SYNCHRONOUS .It Dv MNT_RDONLY ファイルシステムが読取り専用でマウント されています。スーパユーザでも書込めません。 .It Dv MNT_NOEXEC そのファイルシステムからファイルを実行できません。 .It Dv MNT_NOSUID ファイルの setuid ビットと setgid ビットが、 ファイルの実行時に受け入れられません。 .It Dv MNT_NODEV ファイルシステムの特殊ファイルを開けません。 .It Dv MNT_SYNCHRONOUS ファイルシステムへのすべての入出力が、 同期を取って実行されます。 -.It Dv MNT_ASYNCHRONOUS +.It Dv MNT_ASYNC ファイルシステムの入出力が、同期を取って実行されません。 .It Dv MNT_LOCAL ファイルシステムがローカルに常駐しています。 .It Dv MNT_QUOTA ファイルシステムでクォータが有効になっています。 .It Dv MNT_ROOTFS ルートファイルシステムを確認します。 .It Dv MNT_EXRDONLY ファイルシステムが、読取り専用でエクスポートされます。 .It Dv MNT_EXPORTED ファイルシステムが、読み書きの両方でエクスポートされます。 .It Dv MNT_DEFEXPORTED ファイルシステムが、読み書きの両方で 任意のインターネットホストにエクスポートされます。 .It Dv MNT_EXPORTANON ファイルシステムが、すべてのリモートアクセスを 匿名ユーザにマップします。 .It Dv MNT_EXKERB ファイルシステムが、Kerberos uid マッピングでエクスポートされます。 .El .Pp 特定のファイルシステムで定義されていないフィールドは、 -1 に設定されます。 .Fn fstatfs は、記述子 .Fa fd で参照されるオープンファイルに対して同じ情報を戻します。 .Sh 戻り値 処理が正常に完了すると、値 0 が返されます。 そうでない場合は -1 が返され、エラーを示すためにグローバル変数 .Va errno が設定されます .Sh エラー .Fn statfs は、以下のうちの 1 つ以上が真である場合にエラーとなります。 .Bl -tag -width Er .It Bq Er ENOTDIR .Fa path のパスの構成要素中にディレクトリ以外のものが含まれています。 .It Bq Er ENAMETOOLONG .Fa path の構成要素が 255 文字を越えているか、または .Fa path 全体が 1023 文字を越えています。 .It Bq Er ENOENT .Fa path の参照するファイルが存在しません。 .It Bq Er EACCES .Fa path には、検索が許可されていないディレクトリが含まれています。 .It Bq Er ELOOP .Fa path を変換するときに検出されたシンボリックリンクが多すぎます。 .It Bq Er EFAULT .Fa buf か .Fa path が、不正なアドレスを指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に入出力エラーが発生しました。 .El .Pp .Fn fstatfs は、以下のうち 1 つ以上が真である場合にエラーとなります。 .Bl -tag -width Er .It Bq Er EBADF .Fa fd が有効オープンファイル記述子ではありません。 .It Bq Er EFAULT .Fa buf が不正なアドレスを指しています。 .It Bq Er EIO ファイルシステムに読み書きしている間に .Tn I/O (入出力) エラーが発生しました。 .El .Sh 歴史 .Fn statfs 関数は、 .Bx 4.4 ではじめて登場しました。 diff --git a/ja_JP.eucJP/man/man7/ports.7 b/ja_JP.eucJP/man/man7/ports.7 index 54109d2e40..c656f7982c 100644 --- a/ja_JP.eucJP/man/man7/ports.7 +++ b/ja_JP.eucJP/man/man7/ports.7 @@ -1,364 +1,393 @@ .\" .\" Copyright (c) 1997 David E. O'Brien .\" .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY THE DEVELOPERS ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE DEVELOPERS BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" -.\" %FreeBSD: src/share/man/man7/ports.7,v 1.17.2.3 2000/12/29 10:18:05 ru Exp % +.\" %FreeBSD: src/share/man/man7/ports.7,v 1.17.2.4 2001/05/02 02:05:24 dd Exp % .\" .\" jpman %Id: ports.7,v 1.3 1999/01/24 06:53:11 horikawa Stab % .Dd January 25, 1998 .Dt PORTS 7 .Os FreeBSD .Sh 名称 .Nm ports .Nd 寄贈されたアプリケーション .Sh 解説 .Fx .Nm ports コレクション によって、ユーザや管理者は簡単にアプリケーションをインストールする ことができます。 .Em port はそれぞれ、オリジナルのソースコードを BSD 上でコンパイルして実行 させるために必要なパッチのすべてを含んでいます。アプリケーションの コンパイルは、 port のディレクトリで .Ic make build と入力するだけで簡単にできます。 port の .Ql Pa Makefile は、ローカルディスクからもしくは ftp を使って、自動的にアプリケーションの ソースコードを取得 .Pq fetch して、自分のシステムでそれを展開して、 パッチを当て、コンパイルします。すべてが順調に進んだ場合、 .Ic make install を実行することにより、アプリケーションがインストールされます。 .Pp インストールされたシステムよりも新しい ports を、 .Fx リポジトリからダウンロードして使用できます。 ただし、最初に適切な「アップグレードキット」を http://www.FreeBSD.org/ports/ から取得してインストールすることが重要です! 新しい ports をダウンロードするときには、 .Xr portcheckout 1 スクリプト (もちろんこれも port です!) が役立つでしょう。 .Pp port の利用に関してさらに情報が必要ならば、 .Nm ports コレクション (The Ports Collection) (原文: file:/usr/share/doc/handbook/ports.html または、 http://www.FreeBSD.org/handbook/ports.html。 和文: file:/usr/share/doc/ja/handbook/ports.html または、 http://www.FreeBSD.org/ja/handbook/ports.html) ) に目を通して下さい。 port を新規に作成するための情報については、 .Nm 自分で port を作る (Porting applications) (原文: file:/usr/share/doc/handbook/porting.html または、 http://www.FreeBSD.org/handbook/porting.html、 和文: file:/usr/share/doc/ja/handbook/porting.html または http://www.FreeBSD.org/ja/handbook/porting.html) に目を通して下さい。 どちらも .Fx ハンドブックの一部です。 .Pp .Sh ターゲット .Pp ターゲットのいくつかは、サブディレクトリを再帰的に make して行きます。 これにより、例えば、biology の port すべてをインストールすることが できます。再帰的に make を行なうターゲットは、 .Ar build , checksum , clean , configure , .Ar depends , extract , fetch , install , .Ar package です。 .Pp 次のターゲットは、それぞれすぐ手前のターゲットによって順に自動的に 実行されます。すなわち、 .Ar build は、 .Pq 必要があれば、 .Ar install によって実行されます。以下のターゲットそれぞれについて、同様のルールが .Ar fetch まで順次適用されます。 通常は、ターゲットとして、 .Ar install を指定するだけでよいはずです。 .Bl -tag -width configure .It Ar fetch MASTER_SITES と PATCH_SITES でリストされたサイトから、 この port を構築するために必要なファイルすべてを取得 .Pq fetch します。 .Ev FETCH_CMD と .Ev MASTER_SITE_OVERRIDE とを参照して下さい。 .It Ar checksum -取得した distfile が port で動作確認されたものと一致するかどうかを検証 -します。 +取得した distfile のチェックサムが port で動作確認されたものと +一致するかどうかを検証します。 .Ev NO_CHECKSUM を定義することで、このステップを飛ばすことができます。 .It Ar depends 現在の port と依存関係にある port をインストール .Pq もしくは、必要がある場合のみコンパイル します。ターゲット .Ar extract もしくは .Ar fetch により呼び出された場合、 .Ar fetch-depends , .Ar build-depends などとしてひとつずつ実行されます。 .Ev NO_DEPENDS を定義することで、このステップを飛ばすことができます。 .It Ar extract distfile を作業用ディレクトリに展開します。 .It Ar patch port に必要なパッチすべてを適用します。 .It Ar configure port を構成 (configure) します。port によっては、この段階で質問して くるものもあります。 .Ev INTERACTIVE と .Ev BATCH を参照して下さい。 .It Ar build port を構築します。これはターゲット .Ar all を呼び出すことと同じです。 .It Ar install port をインストールし、この port をインストールしたことを package (訳注: .Fx の package system におけるパッケージを指す場合にこう表記します) システムに登録します。このターゲットは、実際に必要なこと すべてを行なってくれます。 .El .Pp 次のターゲットは、通常のインストールプロセスでは実行されません。 .Bl -tag -width fetch-list .It Ar fetch-list この port を構築するために取得が必要なファイルのリストを表示します。 .It Ar pretty-print-run-depends-list pretty-print-build-depends-list コンパイル依存 port リストと実行依存 port リストを表示します。 また、これらの依存 port リストが依存する port についても表示します。 .It Ar clean 展開されたソースコードを削除します。 .Ev NOCLEANDEPENDS を定義しておかない限り、削除は依存関係にある port に再帰的に適用されます。 .It Ar distclean その port の distfile を削除し、 .Ar clean -を実行します。 +ターゲットを実行します。 .Ev NOCLEANDEPENDS を定義しておかない限り、 .Sq clean の部分は依存関係にある port に再帰的に適用されます。しかし、 .Sq distclean の部分は決して再帰的に適用されません .Pq この挙動はひょっとするとバグかもしれません 。 .It Ar reinstall .Ar deinstall を使用すべきところでうっかり .Xr pkg_delete 1 を使ってしまった場合、このターゲットを使って port を復活させて下さい。 .It Ar deinstall .Xr pkg_delete 1 と同様に、インストールした port をシステムから削除します。 .It Ar package この port のバイナリ package を作成します。まだインストールされて いなかった場合、その port をインストールします。 package は\ .tgz ファイルであり、その port を他のマシンに .Xr pkg_add 1 を使ってインストールする際に使用することができます。 .Ev PACKAGES で指定されたディレクトリが存在しなければ、package はカレントディレクトリに 置かれます。 .Ev PKGREPOSITORY と .Ev PKGFILE とを参照して下さい。 .It Ar readmes その port の .Pa README.html ファイルを生成します。 これは、あなたのシステム上の全 port をウェブでブラウズできるようにするために、 .Pa /usr/ports から使用可能です。 +.It Ar search +.Pa INDEX +ファイルを、 +.Ar key +(port の名前、コメント、依存を調べます) または +.Ar name +(port の名前のみを調べます) ターゲットのいずれかで指定されたパターンで +検索します。 +例えば、次のように入力します: +.Pp +.Dl cd /usr/ports && make search name=query +.Pp +すると、全 ports のうち名前が +.Ql query +に適合するものが探されます。 +結果には、適合する ports のパス、コメント、メンテナ、構築依存、実行依存が +含まれます。 +.It Ar index +.Pa /usr/ports/INDEX +を作成します。 +これは、 +.Ar pretty-print-* +および +.Ar search +のターゲットで使用されます。 +CVS リポジトリのマスタ INDEX ファイルは定期的に更新されますが、 +.Ar index +ターゲットを実行することで、 +INDEX ファイルが ports ツリに対して最新であることを保証します。 .El .Sh 環境変数 これら環境変数のすべてを変更することができます。 .Bl -tag -width MASTER_SITES .It Ev PORTSDIR port ツリーの場所を指定します。これは .Fx と .Ox では .Pa /usr/ports で、 .Nx では .Pa /usr/pkgsrc です。 .It Ev WRKDIRPREFIX 一時ファイルを作成する場所です。 .Ev PORTSDIR が読み込み専用の場合 (おそらく cdrom をマウントした場合) 有用です。 .It Ev DISTDIR distfile を探す場所であり、取得した distfile を置く場所です。通常は .Ev PORTSDIR の下の .Pa distfiles/ です。 .It Ev PACKAGES ターゲット .Ar package でのみ使用されます。 package ツリーのベースディレクトリです。通常は、 .Ev PORTSDIR の下の .Pa packages/ です。 このディレクトリが存在する場合、package ツリーが (部分的に) 構築されます。 このディレクトリは存在する必要はありません。存在しない場合、package は カレントディレクトリに置かれます。もしくは、以下のいずれか一方を定義 することができます。 .Bl -tag -width PKGREPOSITORY .It Ev PKGREPOSITORY package を置くディレクトリ。 .It Ev PKGFILE その package のフルパス。 .El .It Ev PREFIX 一般に、成果物をどこにインストールするかを指定します .Po 通常は .Pa /usr/local か、 .Pa /usr/X11R6 です .Pc 。 .It Ev MASTER_SITES ローカルマシンに配布ファイルが存在しない場合、最初に取得しに行くサイトです。 .It Ev PATCH_SITES ローカルマシンにパッチファイルが存在しない場合、最初に取得しに行くサイトです。 .It Ev MASTER_SITE_FREEBSD これが設定されている場合、すべてのファイルを .Fx のマスタサイトに 取りに行きます。 .It Ev MASTER_SITE_OVERRIDE すべてのファイルとパッチについて、まずこのサイトに行って取得を試みます。 .It Ev NOCLEANDEPENDS これが定義されている場合、依存関係にある port に対して .Sq clean を再帰的に適用しません。 .It Ev FETCH_CMD ファイルを取得する際に使用するコマンドです。通常は .Xr fetch 1 です。 .It Ev FORCE_PKG_REGISTER これが設定されている場合、既にシステムに存在する package 登録情報を 上書きします。 .It Ev MOTIFLIB libXm.{a,so} の位置を指定します。 .It Ev INTERACTIVE これが設定されている場合、ユーザ入力が必要な port にのみ動作します。 .It Ev BATCH これが設定されている場合、100% 自動的にインストールできる port にのみ 動作します。 .El .Sh 関連ファイル .Bl -tag -width /usr/ports/xxxx -compact .It Pa /usr/ports デフォルトの port ディレクトリ .Po .Fx と .Ox .Pc 。 .It Pa /usr/pkgsrc デフォルトの port ディレクトリ .Po .Nx .Pc 。 .It Pa /usr/ports/Mk/bsd.port.mk .\"kuma: big Kahuna というのはモアイのような巨大石のものらしい。 .\"kuma: だれか教えて?! ご本尊様であらしゃいます。 .El .Sh 関連項目 .Xr make 1 , .Xr pkg_add 1 , .Xr pkg_create 1 , .Xr pkg_delete 1 , .Xr pkg_info 1 , .Xr pkg_version 1 .Pp 次に示すものは ports コレクションの一部です: .Pp .Xr pib 1 , .Xr portcheckout 1 , .Xr portlint 1 .Pp .Fx ハンドブック .Pp http://www.FreeBSD.org/ports .Pq port すべてが検索可能なインデックス .Sh 作者 .An -nosplit このマニュアルページは、もともとは .An David O'Brien によるものです。 ports コレクションは .An Satoshi Asami と恐るべき port チームによって維持管理されています。 .Sh 歴史 .Nm ports コレクション は、 .Fx 1.0 で登場しました。 その後、 .Nx と .Ox にも広まりました。 .Sh バグ port に関する文書が 4 か所に分散されてしまっています。 .Pa /usr/ports/Mk/bsd.port.mk , ハンドブックの .Dq port コレクション のセクションと、 .Dq 既存のソフトウェアを port にする のセクション、 .Xr ports 7 の 4 つです。 .Pp このマニュアルページは長過ぎです。 .\"ZZZ: 3.0-RELEASE compliant by N. Kumagai, 98-12-26 diff --git a/ja_JP.eucJP/man/man8/diskless.8 b/ja_JP.eucJP/man/man8/diskless.8 index 10c05c3cb8..94cce22e71 100644 --- a/ja_JP.eucJP/man/man8/diskless.8 +++ b/ja_JP.eucJP/man/man8/diskless.8 @@ -1,213 +1,250 @@ .\" %NetBSD: diskless.8,v 1.11 1997/06/16 07:50:35 mrg Exp % -.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.6.2.3 2001/04/20 23:15:25 luigi Exp % +.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.6.2.4 2001/04/30 06:35:30 luigi Exp % +.\" $FreeBSD:$ .\" .\" Copyright (c) 1994 Gordon W. Ross, Theo de Raadt .\" Updated by Luigi Rizzo .\" All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. The name of the author may not be used to endorse or promote products .\" derived from this software without specific prior written permission. .\" .\" THIS SOFTWARE IS PROVIDED BY THE AUTHOR ``AS IS'' AND ANY EXPRESS OR .\" IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES .\" OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED. .\" IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY DIRECT, INDIRECT, .\" INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT .\" NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, .\" DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY .\" THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT .\" (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF .\" THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. .\" +.\" %FreeBSD: src/share/man/man8/diskless.8,v 1.6.2.4 2001/04/30 06:35:30 luigi Exp % .\" .Dd April 18, 2001 .Dt DISKLESS 8 .Os .Sh 名称 .Nm diskless .Nd ネットワークを介してシステムをブートする .Sh 解説 ネットワークを介してマシンをブートする能力は、 .Em diskless もしくは .Em dataless マシンのためや、ローカルのファイルシステムの再インストールまたは 修復中に一時的に利用するために有用です。 このファイルは、クライアントがネットワークを介してブートする時に、 クライアントとサーバとの間で行われる通信の一般的な解説を提供します。 .Sh 操作 ネットワークを介してシステムをブートする時に、 クライアントとサーバの間で 3 フェーズのやりとりがあります: .Pp .Bl -enum -compact .It ステージ 1 のブートストラップがブートプログラムを 読み込みます。 .It ブートプログラムがカーネルを読み込みます。 .It カーネルがルートを NFS マウントします。 .El .Pp これらの各フェーズについて、以降で詳しく記述します。 .Pp フェーズ 1 では、ステージ 1 のブートストラップコードが ブートプログラムを読み込みます。このブートプログラムは、 普通ネットワークカードを制御できます。 ブートプログラムを、BIOS や、ネットワークカード上の BOOT ROM (PXE, etherboot, netboot) に格納することもできます。また、 ディスクユニット (etherboot, netboot 等) からロードさせることもできます。 .Pp フェーズ 2 では、ブートプログラムがカーネルを読み込みます。 このフェーズの操作はブートプログラムの設計に依存します。 普通、ブートプログラムは .Tn BOOTP プロトコルまたは .Tn DHCP プロトコルを用い、クライアントの IP アドレスと その他のブート情報を取得します。ブート情報は、 NFS サーバ、ルータ、ネームサーバの IP アドレス、 ロードするカーネル名を含みます (これに限らず他の情報が含まれる こともあります)。 その後、カーネルがロードされます。これには、 (etherboot や netboot の場合のように) NFS を使って直接ロードされる場合と、 pxeboot と呼ばれる中間ローダを通じて、TFTP や NFS を使ってロードされる 場合とがあります。 .Pp フェーズ 3 では、カーネルが DHCP や BOOTP を用いて設定情報を獲得し、 ルートファイルシステムのマウントに進み、動作を開始します。 ディスクレスシステムの開始処理中に行なわれるいくつかの動作は、 .Pa /etc/rc.diskless1 と .Pa /etc/rc.diskless2 とに列挙されています。 - .Sh 設定 ディスクレスクライアントを実行させるためには、次に示すものが必要です。 -.Pp -.Bl -bullet -compact +.Bl -bullet .It NFS サーバ。これは、適切なパーミッションを付けて ルートパーティションと /usr パーティションをエクスポートします。 いくつかのシステムファイルにアクセスできるようにするために、 -ルートパーティションが -maproot=0 でエクスポートされている限り、 -スクリプト rc.diskless{1,2} は読み込み専用パーミッションで動作します。 +ルートパーティションが +.Fl maproot Ns =0 +でエクスポートされている限り、 +スクリプト +.Pa rc.diskless{1,2} +は読み込み専用パーミッションで動作します。 例として .Pa /etc/exports は次に示す行を含みます。 .Bd -literal -offset indent -maproot=0 -alldirs /usr -alldirs .Ed .Pp -ここで は、ルートパーティションのサーバ上でのマウントポイントです。 +ここで +.Aq ROOT +は、ルートパーティションのサーバ上でのマウントポイントです。 スクリプト .Pa /usr/share/examples/diskless/clone_root を使い、共用可能な読み込み専用ルートパーティションを 生成することができます。 しかし、同様に、サーバ自身が使用するルートディレクトリを (読み込み専用で) エクスポートさせると決めることもできます。 -.Pp .It -bootp または dhcp サーバ。bootpd は +.Tn BOOTP +または +.Tn DHCP +サーバ。 +.Xr bootpd 8 +は .Pa /etc/inetd.conf の -.Pa bootps +.Em bootps 行のコメントを外すことで使用可能にすることができます。 .Pa /etc/bootptab の例は次のようになります。 .Bd -literal -offset indent - .default:\ - hn:ht=1:vm=rfc1048:\ - :sm=255.255.255.0:\ - :sa=:\ - :gw=:\ + .default:\\ + hn:ht=1:vm=rfc1048:\\ + :sm=255.255.255.0:\\ + :sa=:\\ + :gw=:\\ :rp=":": :ha=0123456789ab:tc=.default .Ed .Pp -SERVER, GATEWAY, CLIENT の意味は明らかでしょう。 +.Aq SERVER , +.Aq GATEWAY , +.Aq CLIENT +の意味は明らかでしょう。 .Pp .It ルートパーティション上に、ディスクレスクライアント用の設定ファイルを 生成します。これらは、 .Pa /cont/${i}/etc -に置きます。ここで、${i} は、"default"、またはクライアントの +に置きます。ここで、 +.Va i +は、 +.Qq Li default +、またはクライアントの サブネットブロードキャストアドレス、またはクライアントの IP アドレスです。 .Pp -/etc/rc の主要な部分の実行 (これには、rc.conf の読み込みも含まれます) -の前に、/etc/rc.diskless.1 によって、ファイルが -上に記したディレクトリから /etc にコピーされ -(/etc にあったそれ以前の内容は上書きされます)、 +.Pa /etc/rc +の主要な部分の実行 (これには、 +.Pa rc.conf +の読み込みも含まれます) +の前に、 +.Pa /etc/rc.diskless.1 +によって、ファイルが +上に記したディレクトリから +.Pa /etc +にコピーされ ( +.Pa /etc +にあったそれ以前の内容は上書きされます)、 最も汎用のものから開始されます。 .Pp 最低でも、 .Pa /conf/default/etc/fstab に次の内容を含める必要があります。 .Bd -literal -offset indent : / nfs ro 0 0 :/usr /usr nfs ro 0 0 proc /proc procfs rw 0 0 .Ed .Pp また、 .Pa /conf/default/etc/rc.conf を変更し、ディスクレスクライアント用のスタートアップオプションを 含むようにしたバージョンを用意する必要もあります。 .Pp スタートアップコードで既に設定されているため、 -hostname や ifconfig_* を指定する必要はまずないでしょう。 +.Va hostname +や +.Va ifconfig_* +を指定する必要はまずないでしょう。 一方、サーバのローカルスタートアップファイルを使用しないようにするため、 -local_startup="" を設定する必要があるでしょう。 +.Va local_startup Ns = Ns Qq +を設定する必要があるでしょう。 最後になりますが、 複数のディスクレスクライアントで同じ設定ファイルを共有する場合、 -`hostname` の値をスイッチ変数に使う case 文を用いて、 -マシン固有の設定を行なうようにするといいかもしれません。 +.Li `hostname` +の値をスイッチ変数に使う +.Ic case +文を用いて、 +マシン固有の設定を行なうようにすると良いかもしれません。 .Pp .It -カーネルを構築します。その際、設定ファイル -(/sys/i386/conf/DISKLESS など) には、少なくとも +カーネルを構築します。その際、設定ファイル ( +.Pa /sys/i386/conf/DISKLESS +など) には、少なくとも 次のオプションを含めておきます。 .Bd -literal -offset indent options MFS options BOOTP options BOOTP_NFSROOT options BOOTP_COMPAT .Ed .Pp ファイアウォールを使用する場合、デフォルトをオープンにしておかねば ならないことは覚えておいて下さい。オープンにしておかないと、 カーネルで bootp パケットの読み書きができなくなります。 .El .Sh セキュリティ上の問題 暗号化されない NFS を使用してルートパーティションと ユーザパーティションをマウントすると、暗号化キーなどの 情報が洩れるかもしれないことに注意して下さい。 -.Pp .Sh バグ このマニュアルページはおそらく不完全です。 .Pp -FreeBSD はときどきルートパーティションに書き込みを要求します。 +.Fx +はときどきルートパーティションに書き込みを要求します。 ですから、スタートアップスクリプトでは、元の内容を保存する間、 -MFS ファイルシステムをいくつかの位置 (/etc や /var など) に +MFS ファイルシステムをいくつかの位置 ( +.Pa /etc +や +.Pa /var +など) に マウントします。この処理はすべての場合を扱えないかもしれません。 .Sh 関連項目 .Xr ethers 5 , .Xr exports 5 , .Xr bootpd 8 , .Xr mountd 8 , .Xr nfsd 8 , .Xr pxeboot 8 , .Xr reboot 8 , .Xr tftpd 8 , .Xr ports/net/etherboot diff --git a/ja_JP.eucJP/man/man8/picobsd.8 b/ja_JP.eucJP/man/man8/picobsd.8 index 766aeda0a1..ad3c9dc785 100644 --- a/ja_JP.eucJP/man/man8/picobsd.8 +++ b/ja_JP.eucJP/man/man8/picobsd.8 @@ -1,202 +1,209 @@ .\" -*- nroff-fill -*- -.\" %FreeBSD: src/share/man/man8/picobsd.8,v 1.1.2.5 2001/04/21 00:04:29 luigi Exp % -.Dd December 23, 1999 -.\" jpman %Id: picobsd.8,v 1.3 2000/08/10 13:49:12 horikawa Stab % -.Os FreeBSD -.Dt PicoBSD 8 +.\" %FreeBSD: src/share/man/man8/picobsd.8,v 1.1.2.6 2001/04/30 06:35:30 luigi Exp % +.\" $FreeBSD:$ +.Dd April 21, 2001 +.Os +.Dt PICOBSD 8 .Sh 名称 .Nm picobsd .Nd フロッピディスクベースの FreeBSD システム .Sh 書式 .Nm .Op Fl n .Op Ar floppy-type Op Ar site-name -.Pp .Sh 解説 .Nm は、1 枚ないし数枚のフロッピディスク上に実装した最小限の .Fx です。 フロッピディスクはロードする際にのみ必要です。 システムは RAMDISK から立ち上り、それゆえフロッピディスクの速度限界に 左右されません。 1 枚目の .Nm フロッピ (これが唯一必須のものです) には、 圧縮したカーネルと圧縮した MFS ルートファイルシステム、 それに .Pa /etc ディレクトリのいくつかのファイルが含まれます。 システムはこのカーネルを通常どおりロードし、 ファイルシステムの圧縮を解凍してルートとしてマウントします。 続いてフロッピの .Pa /etc ディレクトリ内のファイルを MFS の .Pa /etc ディレクトリにコピーし、特別なバージョンの .Pa /etc/rc を実行します。 標準版の .Pa /etc/rc は追加フロッピを求めるプロンプトを出し、 それを MFS ファイルシステムに読み込みます。 .Sh 環境 サイズ制限が極めて厳しいため、 .Nm の環境は通常の .Fx といくつかの点で異なっています: .Bl -bullet .It ダイナミックライブラリはなく、 .Pa /usr/lib ディレクトリもありません。 そのため、スタティックリンクした実行体のみ実行可能です。 .It 実行体のサイズを減らすため、特定のフロッピ内のすべての実行体は、 .Xr crunchgen 1 を利用して単一の実行体にまとめられています。 .It プログラムによっては最小限のバージョンが提供されています。 .Nm ns は -.Nm netstat +.Xr netstat 1 の機能限定版であり、 .Nm vm は -.Nm vmstat +.Xr vmstat 8 の機能限定版です。 .El .Sh picobsd の構築 .Nm のソースはディレクトリ .Pa /usr/src/release/picobsd の下にあります。 以下では、相対パス名はすべてこのディレクトリからの相対位置です。 .Nm の構築過程は、時とともに少し変化しました。 コード量の不可避な増加に対応するために、 なるべく多くをフロッピに詰め込むための沢山のからくりが必要となったからです。 -FreeBSD 4.3 では、サポートされている構築スクリプトは +.Fx 4.3 +では、サポートされている構築スクリプトは .Pa /usr/src/release/picobsd/build/picobsd であり、どこからでも実行可能です。 この対話的なスクリプトは、いくつかパラメータを尋ねた後、 適切な単一フロッピ版を構築します。 次の種類のフロッピが想定されています: -.Bl -hang +.Bl -hang -width "install " .It bridge はブリッジ、ルータ、ファイアウォールに適したコンフィギュレーションです。 .It dial はダイヤルアウト (ppp) ネットワーキングに適したコンフィギュレーションです。 .It install はソフトウェアインストールに適したコンフィギュレーションです。 .It isp はダイヤルイン (ppp) ネットワーキングに適したコンフィギュレーションです。 .It net は一般的なネットワーキングに適したコンフィギュレーションです。 .It router はルータとして使う場合に適したコンフィギュレーションです。 この特別なコンフィギュレーションは、最小限のハードウェアで動作することを 目標としています。 .El .Pp これらのコンフィギュレーションは、 あなた自身による構築の参考のためだけにあります。 すべてがテストされたわけではありませんし、 動かすため、もしくはコード量増加時に空きディスク空間に納めるために、 コンフィギュレーションファイルにちょっとした修正が必要となるかもしれません。 .Pp あなた自身のフロッピタイプを定義可能であり、 このためには次のものを含む好み (例 FOO) のディレクトリを作成します。 .Pp .Bl -tag -width "floppy.tree.exclude" -compact -.It PICOBSD +.It Pa PICOBSD カーネルコンフィギュレーションファイル (必須)。 -.It crunch.conf +.It Pa crunch.conf crunchgen コンフィギュレーションファイル (必須)。 -.It config -"picobsd" スクリプトが読み取るシェル変数 (省略可能)。 -.It floppy.tree.exclude +.It Pa config +.Pa picobsd +スクリプトが読み取るシェル変数 (省略可能)。 +.It Pa floppy.tree.exclude 標準フロッピツリーから得る、必須ではないファイル (省略可能)。 -.It floppy.tree/ +.It Pa floppy.tree/ 標準フロッピツリーへの、ローカルな追加 (省略可能)。 -.It floppy.tree.${site} +.It Pa floppy.tree.${site} 上と同じですが、サイト固有です (省略可能)。 .El - -構築過程に関する更なる情報は、"picobsd" スクリプトに記述されています。 +.Pp +構築過程に関する更なる情報は、 +.Pa picobsd +スクリプトに記述されています。 サンプルのコンフィギュレーションは -.Pa /usr/src/release/picobsd/${type}/ +.Pa /usr/src/release/picobsd/ Ns ${type} Ns / にあります。 - .Sh PicoBSD のブート .Nm をブートするには、フロッピを挿入してマシンをリセットします。 ブート手順は標準の .Fx ブートと似ていますが、 非常にゆっくりと進みます。 POST (BIOS の Power On Self Test) が終ってから システムが立ち上がって走行するまで 1 〜 3 分かかります。 .Pp ブートを高速化するには、 .Xr etherboot を使用して、ロード済みで圧縮を伸長したカーネルイメージをロードしてください。 -このイメージは、picobsd 構築過程で生成されます。 +このイメージは、 +.Nm +構築過程で生成されます。 この場合、10Mbit/s イーサネットでさえ、ロード時間は数秒になります、 .Ss スワップ空間 ブート後は、 .Nm は完全に MFS ファイルシステム上で走ります。 もはやフロッピは不要ですし、 たとえ .Nm カーネルにハードディスクドライバが含まれていても、 .Nm はハードディスクにアクセスしません。 特に、スワップ空間もありませんので、 メモリ不足の際には予期できない事態が発生し得ます。 .Pp もしディスクドライバがあって、 スワップパーティションを含むディスクがあり、 しかもそのスワップパーティションに 保存しておきたいダンプが含まれていないなら、 そのスワップを .Nm PicoBSD で使用することも可能です。 .Xr swapon 8 コマンドを使って下さい。 .Sh 関連項目 .Xr crunchgen 1 , .Xr swapon 8 , .Xr vnconfig 8 -.\" .Sh STANDARDS -.\" .Sh HISTORY .Sh 作者 .An -nosplit .An Andrzej Bialecki Aq abial@FreeBSD.org です。 スクリプト関連の仕事を .An Luigi Rizzo Aq luigi@iet.unipi.it 等が引き継ぎました。 -マニュアルページと Makefile の作成は +マニュアルページと +.Pa Makefile +の作成は .An Greg Lehey Aq grog@lemis.com が行いました。 .Sh バグ .Nm を構築する際、 構築作業を行うシステムのカーネルには -.Nm vn +.Xr vn 4 ドライバがインストールされていなければなりません。 .Pp 構築の過程は -.Nm root +.Dq root で実行しなければなりません。 -vnconfig と mount を実行する必要があるためです。 +.Xr vnconfig 8 +と +.Xr mount 8 +を実行する必要があるためです。 .Pp .Nm の構築には、依然、中身の見えにくいところがあります。 最大の問題は、 どういうふうにすればフロッピにぴったり詰め込むことができるかを 判断することです。 現実的な方法は試行錯誤しかありません。 diff --git a/ja_JP.eucJP/man/man8/sysinstall.8 b/ja_JP.eucJP/man/man8/sysinstall.8 index aa69a74956..24414c9d86 100644 --- a/ja_JP.eucJP/man/man8/sysinstall.8 +++ b/ja_JP.eucJP/man/man8/sysinstall.8 @@ -1,896 +1,905 @@ - .\" Copyright (c) 1997 .\" Jordan Hubbard . All rights reserved. .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" .\" THIS SOFTWARE IS PROVIDED BY Jordan Hubbard AND CONTRIBUTORS ``AS IS'' AND .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE .\" ARE DISCLAIMED. IN NO EVENT SHALL Jordan Hubbard OR CONTRIBUTORS BE LIABLE .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF .\" SUCH DAMAGE. .\" -.\" %FreeBSD: src/release/sysinstall/sysinstall.8,v 1.31.2.9 2001/03/22 01:43:47 ps Exp % +.\" %FreeBSD: src/release/sysinstall/sysinstall.8,v 1.31.2.10 2001/04/29 19:08:21 olgeni Exp % .\" .\" jpman %Id: sysinstall.8,v 1.3 2001/04/05 02:42:23 kuma Stab % .Dd August 9, 1997 .Dt SYSINSTALL 8 .Os FreeBSD .Sh 名称 .Nm sysinstall .Nd システムのインストール及び設定のためのツール .Sh 書式 .Nm .Op Ar var=value .Op Ar function .Op Ar ... .Sh 解説 .Nm は、 .Fx システムのインストールと設定のためのユーティリティです。 これは .Fx インストーラのブートフロッピが最初に起動するプログラムであり、 新規に .Fx システムがインストールされた時には .Pa /stand/sysinstall に、後のシステム設定で使用するためにコピーされます。 .Pp この .Nm プログラムは、引数なしで起動された場合には既定のモードで動作します。 このモードでは、インストール及び設定のためのメニューが存在します。 .Pp しかし sysinstall のサブシステムを直接起動する必要がある場合には、 コマンドラインからそれを指定することもできます。インストールスクリプトを 実行することとコマンドラインからの指定はまったく同じことなので、 スクリプトの作成に関するセクションに目を通しておくと良いでしょう。 .Sh 注 .Nm は、 .Xr libdisk 3 の機能を用いて MBR やディスクラベルを書くことと、新規および既存の .Fx システムに、配布ファイルや package (訳注: FreeBSD の package system におけるパッケージを指す場合にこう表記します) をインストールすることができるモノリシックな C プログラムに過ぎません。 また、このプログラムは .Fx インストールのための起動処理の中で実行されたときのために、 .Xr init 8 の代用として動作するための機能も併せ持っています。 これは自分以外のユーティリティのサポートがほとんどないと仮定し、 ファイルシステム操作のほとんどを、(たとえば .Xr mount 2 のような) ユーティリティに相当するシステムコールを 直接呼び出すことによって行ないます。 .Pp .Nm は現在のところ、システムコンソールや、カラー表示をサポートした端末 エミュレータで起動した場合に単純な ANSI ライングラフィックスや色を 使った操作を実現するために .Xr dialog 3 を使用しています (xterm の新しいバージョンでは、temcap の .Dq xterm-color エントリを使用することでカラー表示をサポートします)。 .Pp このプログラムはそろそろライフサイクルの終わりに来ており、新しい ものによって置き換えられるかもしれません。 .Sh スクリプトの実行 .Nm は、そのさまざまなメニューを通じ対話的に操作することもできますし、外部の スクリプトによってバッチモードで動作させることもできます。このような スクリプトを読み込んで実行する方法には以下の 3 通りがあります: .Bl -tag -width Ds .It Sy "LOAD_CONFIG_FILE" もし .Nm が、環境変数 (または Makefile 中に) LOAD_CONFIG_FILE に何らかの値が セットされた状態でコンパイルされていれば、 .Nm が非対話的なモードで起動された際に自動的に探して読み込むファイル名として その値が用いられます。このオプションは、大きなサイトにおいて、 ほぼ同じ設定とインストールオプションで、ひとつの雛型に基づき 多数のマシンにインストールしたい場合のためのものです。 .It Sy "メインメニュー" .Nm が対話的に起動された場合、すなわち既定の方法で起動された場合、オプション "load config file" を含むメインメニューを表示します。このオプションを 選択すると、スクリプトファイル名を尋ねるプロンプトが出され、続いてその ファイルを DOS または UFS 形式のフロッピディスクから読み込みます。 .It Sy "コマンド行" .Nm がマルチユーザモードで動作している場合はコマンドライン引数のそれぞれが スクリプトの指示であるとして扱われます。実行終了のリクエスト (たとえば .Ar shutdown 指示など)、引数列の終わり、エラー発生のいずれかにより実行は終了します。 .Pp たとえば、 .Bd -literal /stand/sysinstall _ftpPath=ftp://ziggy/pub/ mediaSetFTP configPackages .Ed .Pp は、 .Nm を、インストールメディア FTP (サーバは `ziggy') で初期化し、続いて package インストールエディタを起動し、それが終わると終了します。 .El .Sh スクリプトの文法 スクリプトはひとつ以上の指示のリストです。それぞれの指示は以下の形をとります。 .Pp .Ar var=value .Pp .Ar function .Pp .Ar #somecomment .Pp .Ar var=value は、たとえば "ftpPass=FuNkYChiKn" のような、 .Nm の内部変数の設定です。また、 .Ar function は、"mediaSetFTP" のような .Nm の内部関数の名称であり、 .Ar #comment はドキュメンテーションのために挿入する一行のコメントです (sysinstall はこれを無視します)。 それぞれの指示は一行にひとつずつ書かれなければなりません。 関数は、既知の変数名を調べることで、その引数を得ます。 したがって、ある変数を必要とする関数を呼び出す前には、 関連する変数を予め設定しておく必要があります。 +.Pp +各ディレクティブの前に +.Ar noError +変数を設定しておくことが可能です。 +これにより、ディレクティブ自身は無視されるような場合においても、 +エラーを検知可能とします。 +値 +.Ar noError +は、ディレクティブが処理されるたびに、デフォルトの "未設定" に戻します。 +.Pp いつどの関数が、どの変数に依存するかを、 下の表に示します。 .Pp .Sy "関数一覧" : .Pp .\"===kuma=========================================== .Bl -tag -width indent .It configAnonFTP 匿名 FTP の設定メニューを起動します。 .Pp .Sy 変数: 無し .It configRouter 使用したいルーティングデーモンを選択します。必要ならサードパーティの ものを使用することもできます。 .Pp .Sy 変数: .Bl -tag -width indent .It router これには、たとえば .Dq routed や .Dq gated のように、希望するルーティングデーモンの名前を設定します。 設定されていなければ入力を求められます。 .El .It configNFSServer ホストを NFS サーバとして設定します。 .Pp .Sy 変数: なし .It configNTP ホストをネットワークタイムプロトコルのユーザとして設定します。 .Pp .Sy 変数: .Bl -tag -width indent .It ntpdate_flags これには、 .Xr ntpdate 8 のオプションを設定します。同期をとるために使用するサーバの名前は ここに設定してください。 .El .It configPCNFSD ホストを PC NFS をサポートするように設定します。 .Pp .Sy 変数: .Bl -tag -width indent .It pcnfsd_pkg 必要ならば PCNFSD の package 名を設定します (既定値としてハードコード されたものが使用されます)。 .El .It configPackages 対話的な package 管理画面を起動します。 .Pp .Sy 変数: なし .It configUsers システムにユーザやグループを追加します。 .Pp .Sy 変数: なし .It configXEnvironment X ウィンドウシステムの設定を行います。 .Pp .Sy 変数: なし .It diskPartitionEditor ディスクパーティション (MBR) エディタを起動します。 .Pp .Sy 変数: .Bl -tag -width findx .It geometry シリンダ数/ヘッド数/セクタ数の形式で書かれたディスクジオメトリを 設定します。 既定値: ジオメトリを変更しません。 .It partition ディスクパーティションのタイプやサイズを設定します。この値が .Ar free であれば、 .Fx のために使用可能な空き領域のみを使用します。 .Ar all であれば、ディスク全体を .Fx に割り当てますが、正しいパーティションテーブルを作成します。 .Ar existing であれば、既存の .Fx パーティションのうち、最初に見つかったものを使用します。 .Ar exclusive であれば、ディスクを、 .Dq 危険な方法で専用化された モードで使用します。 最後に、 .Ar somenumber であれば、空き領域のうちの .Ar somenumber ブロックを新規の .Fx パーティションのために使用します。 既定値: 対話モードで起動します。 .It bootManager は、次のどれかから選択する必要があります。 .Ar boot は、ブートマネージャのインストールを指示します。 .Ar standard は、ブートマネージャでない「標準の」DOS MBRのインストールを指示します。 .Ar none は、ブートマネージャに対して何の操作も行わないことを指示します。 既定値: none です。 .El .Pp 注意: この関数では実際のディスクへの書き込みは行われません。実際に 書き込みを行うためには、 .Ar diskPartitionWrite 操作を行う必要があります。 .It diskPartitionWrite は、MBR に対する、待ち状態にあるすべての変更を行います (一般には .Ar diskPartitionEditor によって呼び出されます)。 .Pp .Sy 変数: 無し .It diskLabelEditor ディスクラベルエディタを起動します。 スクリプトから動かすのはちょっと手品のようになります。 というのも、 .Ar diskPartitionEditor 関数で作成された各 .Fx (タイプ 0xA5) パーティション中のすべてに対してラベルする必要が 本質的にあるためであり、 これはどのようにレイアウトされるかについての少数のルールを知る 必要があるためです。 スクリプトを作成して、 自動的にディスク空間の割り当てとパーティションを行う場合、 少なくとも一度はまず対話的にインストールを実行し、 スライス名がどうなるかを見てから、 これをスクリプトに埋め込むことをお勧めします。 .Pp 例えば、SCSI ディスクがあり、そのスライス 2 に .Fx を作成したとします (DOS パーティションはスライス 1 にあるとします)。 .Fx 全体のスライス名は .Ar da0s2 になります (DOS プライマリパーティションは .Ar da0s1 となります)。 更に、このパーティションに 500MB あり、 この空間をルートとスワップと var と usr のファイルシステムに 更に分割すると仮定します。 .Ar diskLabelEditor 関数呼び出しには、次の変数設定が伴うでしょう: .Bl -tag -width findx .It Li "da0s2-1=ufs 40960 /" 20MB ルートファイルシステム (すべての大きさは 512 バイトブロック数)。 .It Li "da0s2-2=swap 131072 /" 64MB スワップパーティション。 .It Li "da0s2-3=ufs 204800 /var" 100MB /var ファイルシステム。 .It Li "da0s2-4=ufs 0 /usr 1" 空き空間の残り (約 316MB) が /usr ファイルシステムで ソフトアップデートを有効にします (マウントポイント後の非 0 引数は、ソフトアップデートフラグ設定を意味します)。 .El .Pp 新規パーティションを作成するのと同様に、 既存のパーティションのマウントや消去に、 .Ar diskLabelEditor を使用可能です。 前の例の、DOS パーティションをマウントし、これに対応する .Pa /etc/fstab エントリを、新規インストールにおいて作成したいとします。 .Ar diskLabelEditor 関数の呼び出し前に、次の追加行を単に足せば良いです: .Pp .Dl "da0s1=/dos_c N" .Pp これは、最初のスライスを .Pa /dos_c にマウントしてこれを newfs しないよう、ラベルエディタに指示します ( .Nm は DOS パーティションに対しては如何なる場合でも newfs を実行しません。 既存の UFS パーティションに対しても、ここに名前を書くことで実行できます。 2 番目のフィールドは省略不可です)。 .\" なんだかよくわかりません horikawa 2001/03/25 .\" 原文は .\" not that sysinstall would attempt this for a DOS partition in .\" any case, but it could just as easily be an existing UFS partition .\" being named here and the 2nd field is non-optional .Pp 注: .Ar diskLabelCommit が呼び出される前は、 ファイルシステムデータは実際にディスクに書き込まれません。 .It diskLabelCommit 設定した、待ち状態であるディスクラベル情報をすべて書き込み、 .Ar diskLabelEditor でマウントを設定したすべてのファイルシステムをマウントします。 .Pp .Sy 変数: なし .It distReset 選択した配布ファイルのセットをリセットして、何も選択していない状態にします。 .Pp .Sy 変数: なし .It distSetCustom 配布ファイルセットの選択を、予め用意されたセットからの選択でなく、 非対話モードでも「カスタム」で行うようにします。 .Pp .Sy 変数: .Bl -tag -width indent .It dists 読み込む配布ファイルのセットのリストを設定します。 値として使用できるのは以下の通りです。 .Bl -tag -width indentxx .It Li bin 基本バイナリファイルのセット .It Li doc 様々な文書 .It Li games ゲーム .It Li manpages フォーマット前のマニュアルページ .It Li catpages フォーマット済のマニュアルページ .It Li proflibs 開発者のためのプロファイルされたライブラリ .It Li dict スペルチェックなどのツールのための辞書情報 .It Li info GNU info ファイルとその他の追加文書 .It Li crypto 暗号化のためのバイナリとライブラリ .It Li compat1x .Fx 1.x との互換性 .It Li compat20 .Fx 2.0 との互換性 .It Li compat21 .Fx 2.1 との互換性 .It Li compat22 .Fx 2.2 及び .Fx 3.0 の a.out バイナリ互換性 .It Li compat3x .Fx 3.x との互換性 ( .Fx 4.0 でのみ利用可能) .It Li compat4x .Fx 4.x との互換性 (初期の .Fx 4.x リリースでのみ利用可能) .It Li ports ports コレクション .It Li krb4 KerberosIV バイナリ .It Li krb5 Kerberos5 バイナリ .It Li ssecure /usr/src/secure .It Li sbase /usr/src/(トップレベルファイル) .It Li scontrib /usr/src/contrib .It Li sgnu /usr/src/gnu .It Li setc /usr/src/etc .It Li sgames /usr/src/games .It Li sinclude /usr/src/include .It Li slib /usr/src/lib .It Li slibexec /usr/src/libexec .It Li srelease /usr/src/release .It Li sbin /usr/src/bin .It Li ssbin /usr/src/sbin .It Li sshare /usr/src/share .It Li ssys /usr/src/sys .It Li subin /usr/src/usr.bin .It Li susbin /usr/src/usr.sbin .It Li ssmailcf /usr/src/usr.sbin/sendmail/cf .It Li XF86-xc XFree86 の公式なソース .It Li XF86-co XFree86 に寄贈されたソース .It Li Xbin XFree86 3.3.6 バイナリ .It Li Xcfg XFree86 3.3.6 設定ファイル .It Li Xdoc XFree86 3.3.6 に関する文書 .It Li Xhtml XFree86 3.3.6 に関する HTML 文書 .It Li Xlib XFree86 3.3.6 ライブラリ .It Li Xlk98 XFree86 3.3.6 PC98 向けサーバリンクキット .It Li Xlkit XFree86 3.3.6 一般向けサーバリンクキット .It Li Xman XFree86 3.3.6 マニュアルページ .It Li Xprog XFree86 3.3.6 開発者向け配布物 .It Li Xps XFree86 3.3.6 に関する postscript 文書 .It Li Xset XFree86 3.3.6 グラフィカルセットアップツール .It Li X8514 XFree86 3.3.6 8514 サーバ .It Li X9480 XFree86 3.3.6 PC98 8-bit (256 色) PEGC-480 サーバ .It Li X9EGC XFree86 3.3.6 PC98 4-bit (16 色) EGC サーバ .It Li X9GA9 XFree86 3.3.6 PC98 GA-968V4/PCI (S3 968) サーバ .It Li X9GAN XFree86 3.3.6 PC98 GANB-WAP (cirrus) サーバ .It Li X9LPW XFree86 3.3.6 PC98 PowerWindowLB (S3) サーバ .It Li X9NKV XFree86 3.3.6 PC98 NKV-NEC (cirrus) サーバ .It Li X9NS3 XFree86 3.3.6 PC98 NEC (S3) サーバ .It Li X9SPW XFree86 3.3.6 PC98 SKB-PowerWindow (S3) サーバ .It Li X9TGU XFree86 3.3.6 PC98 Cyber9320, TGUI9680 サーバ .It Li X9WEP XFree86 3.3.6 PC98 WAB-EP (cirrus) サーバ .It Li X9WS XFree86 3.3.6 PC98 WABS (cirrus) サーバ .It Li X9WSN XFree86 3.3.6 PC98 WSN-A2F (cirrus) サーバ .It Li XAGX XFree86 3.3.6 8 ビット AGX サーバ .It Li XI128 XFree86 3.3.6 #9 Imagine I128 サーバ .It Li XMa8 XFree86 3.3.6 ATI Mach8 サーバ .It Li XMa32 XFree86 3.3.6 ATI Mach32 サーバ .It Li XMa64 XFree86 3.3.6 ATI Mach64 サーバ .It Li XMono XFree86 3.3.6 monochrome サーバ .It Li XP9K XFree86 3.3.6 P9000 サーバ .It Li XS3 XFree86 3.3.6 S3 サーバ .It Li XS3V XFree86 3.3.6 S3 Virge サーバ .It Li XSVGA XFree86 3.3.6 SVGA サーバ .It Li XVG16 XFree86 3.3.6 VGA16 サーバ .It Li XW32 XFree86 3.3.6 ET4000/W32, /W32i, /W32p サーバ .It Li XTGA TGA カード用サーバ (alpha アーキテクチャのみ) .It Li Xnest XFree86 3.3.6 ネスト X サーバ。 .It Li Xvfb XFree86 3.3.6 仮想フレームバッファ X サーバ。 .It Li Xfnts XFree86 3.3.6 基本フォントセット。 .It Li Xf100 XFree86 3.3.6 100DPI フォントセット。 .It Li Xfcyr XFree86 3.3.6 キリル語フォントセット。 .It Li Xfscl XFree86 3.3.6 スケーラブルフォントセット。 .It Li Xfnon XFree86 3.3.6 非英語フォントセット。 .It Li Xfsrv XFree86 3.3.6 フォントサーバ。 .El .El .It distSetDeveloper 標準開発者配布セットを選択します。 .Pp .Sy 変数: 無し .It distSetXDeveloper 標準 X 開発者配布セットを選択します。 .Pp .Sy 変数: 無し .It distSetKernDeveloper 標準カーネル開発者配布セットを選択します。 .Pp .Sy 変数: 無し .It distSetUser 標準ユーザ配布セットを選択します。 .Pp .Sy 変数: 無し .It distSetXUser 標準 X ユーザ配布セットを選択します。 .Pp .Sy 変数: 無し .It distSetMinimum 最小配布セットを選択します。 .Pp .Sy 変数: 無し .It distSetEverything 全部、つまり利用可能な配布すべてを選択します。 .Pp .Sy 変数: 無し .It distSetCRYPTO 暗号化のパーツ群を、対話的に選択します。 .Pp .Sy 変数: 無し .It distSetSrc ソースのパーツ群を、対話的に選択します。 .Pp .Sy 変数: 無し .It distSetXF86 XFree86 3.3.6 のパーツ群を、対話的に選択します。 .Pp .Sy 変数: 無し .It distExtractAll 現在選択されている配布すべてをインストールします (メディアデバイスが既に選択されていることが必要です)。 .Pp .Sy 変数: 無し .It docBrowser (必要であれば) HTML 文書ブラウザをインストールし、 HTML 文書サブメニューに行きます。 .Pp .Sy 変数: .Bl -tag -width indent .It browserPackage 必要に応じてインストールを試みる、ブラウザの package 名です。 デフォルトは最新の lynx package です。 .It browserBinary ブラウザバイナリ自身の名前です ( .Ar browserPackage 変数に優先させる場合)。デフォルトは lynx です。 .El .It installCommit ディスクに対する待ち状態の変更を、すべて実施します。 この関数は、本質的に、細粒度の "実施" 関数をまとめたものです。 .Pp .Sy 変数: 無し .It installExpress 「高速」インストールを開始します。 ユーザへの質問は少数です。 .Pp .Sy 変数: 無し .It installStandard 「標準」インストールを開始します。 利用可能なインストールタイプ中で、最もユーザフレンドリです。 .Pp .Sy 変数: 無し .It installUpgrade アップグレードインストールを開始します。 .Pp .Sy 変数: 無し .It installFixitHoloShell init として起動している場合、 「緊急ホログラフィックシェル」を VTY4 で起動します。 .Ar noHoloShell を設定しない限りにおいては、 これはインストール処理の一部として自動的に実施されます。 .Pp .Sy 変数: 無し .It installFixitCDROM "fixit" モードに入ります。 ライブファイルシステム CDROM がドライブにあるものと仮定します。 .Pp .Sy 変数: 無し .It installFixitFloppy "fixit" モードに入ります。 fixit フロッピディスクが利用可能と仮定します (ユーザは問い合わせを受けます)。 .Pp .Sy 変数: 無し .It installFilesystems インストールのファイルシステム初期化部分のみを実行します。 .Pp .Sy 変数: 無し .It installVarDefaults 全変数をデフォルトに初期化し、以前の設定を上書きします。 .Pp .Sy 変数: 無し .It loadConfig #include 文のようなものであり、他の設定ファイルをロードできます。 .Pp .Sy 変数: .Bl -tag -width indent .It configFile ロードするファイルの完全な形でのパス名です。 .El .It mediaSetCDROM インストールメディアとして .Fx CDROM を選択します。 .Pp .Sy 変数: 無し .It mediaSetFloppy インストールメディアとして 作成済フロッピインストールセットを選択します。 .Pp .Sy 変数: 無し .It mediaSetDOS インストールメディアとして 既存の DOS プライマリパーティションを選択します。 最初に見付かるプライマリパーティション (例 C:) を使用します。 .Pp .Sy 変数: 無し .It mediaSetTape インストールメディアとしてテープデバイスを使用します。 .Pp .Sy 変数: 無し .It mediaSetFTP インストールメディアとして FTP サイトを使用します。 .Pp .Sy 変数: .Bl -tag -width indent .It hostname インストールされるホストの名前 (省略不可)。 .It domainname インストールされるホストのドメイン名 (省略不可)。 .It defaultrouter このホストのデフォルトルータ (省略不可)。 .It netDev どのホストインタフェースを使用するか (例えば .Ar ed0 や .Ar ep0 です。省略不可)。 .It netInteractive 設定すると、関連するすべての設定変数を陶に設定していても、 対話的なネットワーク設定フォームを起動します (省略可)。 .It ipaddr 選択したホストインタフェースの IP アドレス (省略不可)。 .It netmask 選択したホストインタフェースのネットマスク (省略不可)。 .It _ftpPath 対象となる .Fx 配布を保持する FTP サイトの完全な形での URL。例えば .Ar ftp://ftp.FreeBSD.org/pub/FreeBSD/ 。 .El .It mediaSetFTPActive .Ar mediaSetFTP と同様ですが、「能動的」な FTP 転送モードを使用します。 .Pp .Sy 変数: .Ar mediaSetFTP と同様です。 .It mediaSetFTPPassive .Ar mediaSetFTP と同様ですが、「受動的」な FTP 転送モードを使用します。 .Pp .Sy 変数: .Ar mediaSetFTP と同様です。 .It mediaSetHTTP .Ar mediaSetFTP と同様ですが、HTTP プロキシを使用します。 .Pp .Sy 変数: .Ar mediaSetFTP を参照してください。更に以下も使用します。 .Bl -tag -width indent .It _httpPath 使用するプロキシ (host:port) (省略不可)。 .El .It mediaSetUFS インストールメディアとして、 (ラベルエディタでマウントされている) 既存の UFS パーティション を選択します。 .Pp .Sy 変数: .Bl -tag -width indent .It ufs 対象となる .Fx 配布を保持する、完全な /path 指定。 .El .It mediaSetNFS .Pp .Sy 変数: .Bl -tag -width indent .It hostname インストールされるホストの名前 (省略不可)。 .It domainname インストールされるホストのドメイン名 (省略不可)。 .It defaultrouter このホストのデフォルト経路 (省略不可)。 .It netDev どのホストインタフェースを使用するか (例えば .Ar ed0 や .Ar ep0 です。省略不可)。 .It netInteractive 設定すると、関連するすべての設定変数を陶に設定していても、 対話的なネットワーク設定フォームを起動します (省略可)。 .It ipaddr 選択したホストインタフェースの IP アドレス (省略不可)。 .It netmask 選択したホストインタフェースのネットマスク (省略不可)。 .It nfs 対象となる .Fx 配布を保持する、完全な hostname:/path 指定。 .El .It mediaSetFTPUserPass .Pp .Sy 変数: .Bl -tag -width indent .It ftpUser FTP サーバに接続する場合のユーザ名を設定します。 既定値: ftp .It ftpPass FTP サーバに接続する場合のパスワードを設定します。 既定値: user@host .El .It mediaSetCPIOVerbosity .Pp .Sy 変数: .Bl -tag -width indent .It cpioVerbose cpio で展開を行う際のメッセージの冗長度を low, medium, high から選択します。 .El .It mediaGetType 対話的にユーザにメディアタイプの指定を求めます。 .Pp .Sy 変数: 無し .It optionsEditor オプション編集画面を起動します。 .Pp .Sy 変数: なし .It packageAdd package を取得してインストールしようと試みます (メディアが設定されている 必要があります)。 .Pp .Sy 変数: .Bl -tag -width indent .It package bash-1.14.7 や ncftp-2.4.2 のようにインストールする package の名前 を指定します。 .El .It addGroup 対話的なグループエディタを起動します。 .Pp .Sy 変数: なし .It addUser 対話的なユーザエディタを起動します。 .Pp .Sy 変数: なし .It shutdown スクリプトの実行を停止して sysinstall を終了します。 .Pp .Sy 変数: なし .It system .Xr system 3 を用いて外部コマンドを実行します。 .Pp .Sy 変数: .Bl -tag -width indent .It command 実行するコマンドの名前。ブートフロッピから起動されている場合は、 システム全体がインストールされている場合と比較して使用できるものが 大幅に限定されていることに注意してください。 .El .El .Sh 関連ファイル このユーティリティは .Pa /etc/rc.conf , .Pa /etc/hosts , .Pa /etc/resolv.conf の内容を、ネットワーク等の設定変更に応じて変更します。 .Sh 関連項目 十分に完全なソースツリーがオンライン上にあれば、 サンプルのインストールスクリプトについて .Pa /usr/src/release/sysinstall/install.cfg を参照してください。 .Sh バグ 本ユーティリティは雛型であり、 期限切後も数年を生き延びており、大いに死すべきです。 .Sh 作者 .An Jordan K. Hubbard Aq jkh@FreeBSD.org .Sh 歴史 このバージョンの .Nm は、 .Fx 2.0 から登場しました。 diff --git a/ja_JP.eucJP/man/man8/vinum.8 b/ja_JP.eucJP/man/man8/vinum.8 index 1de18d679e..9f50b4de00 100644 --- a/ja_JP.eucJP/man/man8/vinum.8 +++ b/ja_JP.eucJP/man/man8/vinum.8 @@ -1,2852 +1,2798 @@ .\" Hey, Emacs, edit this file in -*- nroff-fill -*- mode .\"- .\" Copyright (c) 1997, 1998 .\" Nan Yang Computer Services Limited. All rights reserved. .\" .\" This software is distributed under the so-called ``Berkeley .\" License'': .\" .\" Redistribution and use in source and binary forms, with or without .\" modification, are permitted provided that the following conditions .\" are met: .\" 1. Redistributions of source code must retain the above copyright .\" notice, this list of conditions and the following disclaimer. .\" 2. Redistributions in binary form must reproduce the above copyright .\" notice, this list of conditions and the following disclaimer in the .\" documentation and/or other materials provided with the distribution. .\" 3. All advertising materials mentioning features or use of this software .\" must display the following acknowledgement: .\" This product includes software developed by Nan Yang Computer .\" Services Limited. .\" 4. Neither the name of the Company nor the names of its contributors .\" may be used to endorse or promote products derived from this software .\" without specific prior written permission. -.\" +.\" .\" This software is provided ``as is'', and any express or implied .\" warranties, including, but not limited to, the implied warranties of .\" merchantability and fitness for a particular purpose are disclaimed. .\" In no event shall the company or contributors be liable for any .\" direct, indirect, incidental, special, exemplary, or consequential .\" damages (including, but not limited to, procurement of substitute .\" goods or services; loss of use, data, or profits; or business .\" interruption) however caused and on any theory of liability, whether .\" in contract, strict liability, or tort (including negligence or .\" otherwise) arising in any way out of the use of this software, even if .\" advised of the possibility of such damage. .\" -.\" %Id: vinum.8,v 1.13 2000/01/03 03:12:56 grog Exp grog % -.\" %FreeBSD: src/sbin/vinum/vinum.8,v 1.33.2.7 2001/03/13 03:04:06 grog Exp % +.\" %Id: vinum.8,v 1.48 2001/01/15 22:15:05 grog Exp % +.\" %FreeBSD: src/sbin/vinum/vinum.8,v 1.33.2.8 2001/04/27 10:35:19 ru Exp % .\" -.\" jpman %Id: vinum.8,v 1.3 1999/01/05 15:15:53 horikawa Stab % +.\" $FreeBSD:$ .\" WORD: attach 結合 (する) .Dd December 20, 2000 -.Dt vinum 8 +.Dt VINUM 8 .Sh 名称 .Nm vinum .Nd 論理ボリュームマネージャの制御プログラム .Sh 書式 .Nm -.Op command +.Op Ar command .Op Fl options .Sh コマンド -.Cd attach Ar plex Ar volume -.Op Nm rename -.Cd attach Ar subdisk Ar plex Ar [offset] -.Op Nm rename -.in +1i +.Bl -tag -width indent +.It Ic attach Ar plex volume Op Cm rename +.It Xo +.Ic attach Ar subdisk plex +.Op Ar offset +.Op Cm rename +.Xc プレックスをボリュームに、またはサブディスクをプレックスに結合します。 -.in -.Cd checkparity Ar plex Op Fl f -.Op Fl v -.in +1i +.It Xo +.Ic checkparity Ar plex +.Op Fl f RAID-4 または RAID-5 のプレックスのパリティブロックを検査します。 -.in -.Nm concat +.Xc +.It Xo +.Ic concat .Op Fl f .Op Fl n Ar name .Op Fl v .Ar drives -.in +1i +.Xc 指定したドライブからコンカチネート化ボリュームを作成します。 -.in -.Cd create Op Fl f Ar description-file +.It Xo +.Ic create .Op Fl f .Ar description-file -.in +1i +.Xc .Ar description-file の記述に従ってボリュームを作成します。 -.in -.Cd debug -.in +1i +.It Ic debug ボリュームマネージャをカーネルデバッガに移行させます。 -.in -.Cd debug -.Ar flags -.in +1i +.It Ic debug Ar flags デバッグフラグを設定します。 -.in -.Cd detach +.It Xo +.Ic detach .Op Fl f .Op Ar plex | subdisk -.in +1i +.Xc 結合されていたボリュームやプレックスから、プレックスやサブディスクを分離します。 -.in -.Cd dumpconfig -.Op Ar drive ... -.in +1i +.It Ic dumpconfig Op Ar drive ... 指定されたドライブに格納されている設定情報を表示します。 ドライブ名を指定しないと、システムの全ドライブの情報を表示します。 -.in -.Cd info +.It Xo +.Ic info .Op Fl v .Op Fl V -.in +1i +.Xc ボリュームマネージャの状態を表示します。 -.in -.Cd init +.It Xo +.Ic init .Op Fl S Ar size .Op Fl w .Ar plex | subdisk -.in +1i +.Xc .\" XXX サブディスクまたはプレックスの全サブディスクの内容をすべて 0 に初期化します。 -.in -.Cd label -.Ar volume -.in +1i +.It Ic label Ar volume ボリュームラベルを作成します。 -.in -.Cd list +.It Xo +.Ic l | list .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op volume | plex | subdisk -.in +1i +.Op Ar volume | plex | subdisk +.Xc 指定したオブジェクトの情報を表示します。 -.in -.Cd l +.It Xo +.Ic ld .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op volume | plex | subdisk -.in +1i -指定したオブジェクトの情報を表示します ( -.Cd list -コマンドの別形式)。 -.in -.Cd ld -.Op Fl r -.Op Fl s -.Op Fl v -.Op Fl V -.Op volume -.in +1i +.Op Ar volume +.Xc ドライブの情報を表示します。 -.in -.Cd ls +.It Xo +.Ic ls .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op subdisk -.in +1i +.Op Ar subdisk +.Xc サブディスクの情報を表示します。 -.in -.Cd lp +.It Xo +.Ic lp .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op plex -.in +1i +.Op Ar plex +.Xc プレックスの情報を表示します。 -.in -.Cd lv +.It Xo +.Ic lv .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op volume -.in +1i +.Op Ar volume +.Xc ボリュームの情報を表示します。 -.in -.Cd makedev -.in +1i +.It Ic makedev .Ar /dev/vinum にデバイスノードを再作成します。 -.in -.Nm mirror +.It Xo +.Ic mirror .Op Fl f .Op Fl n Ar name .Op Fl s .Op Fl v .Ar drives -.in +1i +.Xc 指定したドライブからミラー化ボリュームを作成します。 -.in -.Cd mv Fl f Ar drive Ar object ... -.br -.Cd move Fl f Ar drive Ar object ... -.in +1i +.It Xo +.Ic move | mv +.Fl f +.Ar drive object ... +.Xc 指定したドライブにオブジェクトを移動します。 -.in -.Cd printconfig -.Op Pa file -.in +1i +.It Ic printconfig Op Ar file 現在の設定のコピーを -.Pa file +.Ar file へ書き込みます。 -.in -.Cd quit -.in +1i +.It Ic quit 対話モード時に、 .Nm プログラムを終了します。通常 -.Ar EOF +.Dv EOF 文字を入力することにより実現できます。 -.in -.Cd read -.Ar disk Op disk... -.in +1i +.It Ic read Ar disk ... 指定したディスクから .Nm の設定を読み出します。 -.in -.Cd rename Op Fl r -.Ar [ drive | subdisk | plex | volume ] -.Ar newname -.in +1i +.It Xo +.Ic rename Op Fl r +.Op Ar drive | subdisk | plex | volume +.Xc 指定したオブジェクトの名前を変更します。 -.in -.ig -XXX -.Cd replace -.Ar drive -.Ar newdrive -.in +1i -指定したドライブから新しいドライブ上へすべてのサブディスクを移動します。 -.in -.. -.Cd rebuildparity Ar plex Op Fl f -.Op Fl v +.\" XXX +.\".It Ic replace Ar drive newdrive +.\"指定したドライブから新しいドライブ上へすべてのサブディスクを移動します。 +.It Xo +.Ic rebuildparity Ar plex Op Fl f +.Op Fl v .Op Fl V -.in +1i +.Xc RAID-4 または RAID-5 のプレックスのパリティブロックを再構築します。 -.in -.Cd resetconfig -.in +1i +.It Ic resetconfig すべての .Nm の設定をリセットします。 -.in -.Cd resetstats +.It Xo +.Ic resetstats .Op Fl r .Op volume | plex | subdisk -.in +1i +.Xc 指定したオブジェクトの統計情報をリセットします。指定がない場合はすべての オブジェクトが対象です。 -.in -.Cd rm +.It Xo +.Ic rm .Op Fl f .Op Fl r .Ar volume | plex | subdisk -.in +1i +.Xc オブジェクトを削除します。 -.in -.Cd saveconfig -.in +1i +.It Ic saveconfig 設定失敗後に、 .Nm の設定をディスクへ保存します。 -.in -.ig -XXX -.Cd set -.Op Fl f -.Ar state -.Ar volume | plex | subdisk | disk -.in +1i -オブジェクトの状態を \fIstate\fP\| に設定します。 -.in -.. -.Cd setdaemon -.Op value -.in +1i +.\" XXX +.\".It Xo +.\".Ic set +.\".Op Fl f +.\".Ar state +.\".Ar volume | plex | subdisk | disk +.\".Xc +.\"オブジェクトの状態をに設定します。 +.\".Ar state +.\"に設定します。 +.It Ic setdaemon Op Ar value デーモンの設定を与えます。 -.in -.Cd setstate +.It Xo +.Ic setstate .Ar state .Op Ar volume | plex | subdisk | drive -.in +1i +.Xc 他のオブジェクトに影響を与えずに状態を設定します。 診断のためだけに使用します。 -.in -.Cd start -.in +1i +.It Ic start 全 vinum ドライブから設定を読み込みます。 -.in -.Cd start +.It Xo +.Ic start .Op Fl i Ar interval .Op Fl S Ar size .Op Fl w -volume | plex | subdisk -.in +1i +.Ar volume | plex | subdisk +.Xc システムがオブジェクトへアクセスできるようにします。 -.in -.Cd stop +.It Xo +.Ic stop .Op Fl f -.Op volume | plex | subdisk -.in +1i +.Op Ar volume | plex | subdisk +.Xc オブジェクトへのアクセスを終了させます。 パラメータを指定しないと、 .Nm を停止させます。 -.in -.Nm stripe +.It Xo +.Ic stripe .Op Fl f .Op Fl n Ar name .Op Fl v .Ar drives -.in +1i +.Xc 指定したドライブからストライプ化ボリュームを作成します。 -.in +.El .Sh 解説 .Nm -は \fBVinum\fP\| 論理ボリュームマネージャと通信するための -ユーティリティプログラムです。 -ボリュームマネージャの詳細については +は .Xr vinum 4 -を参照してください。 +論理ボリュームマネージャと通信するための +ユーティリティプログラムです。 .Nm は対話形式と、単独のコマンドを実行する形式のいずれも実行可能になっています。 コマンドライン引数を伴わずに .Nm を起動すると対話形式になる一方、 コマンドラインでコマンドを指定するとそのコマンド だけを実行します。 対話モードでは、 .Nm はコマンドラインヒストリを保持します。 -.Ss オプション +.Sh オプション .Nm のコマンドにはオプションを付加することができます。どのコマンドにも 下記オプションのどれでも指定することができますが、 オプションが無視される場合があります。例えば、 -.Nm stop +.Ic stop コマンドは .Fl v オプションと .Fl V オプションを無視します。 -.Bl -hang +.Bl -tag -width indent .It Fl f .Fl f -.if t (``force: 強制'') -.if n ("force: 強制") +Pq Dq force: 強制 オプションは安全性の確認を無効にします。細心の注意を払って 使用して下さい。 このオプションは緊急時にのみ使用するものです。例えば、 コマンド -.Bd -unfilled -offset indent -rm -f myvolume -.Ed +.Pp +.Dl rm -f myvolume .Pp は .Ar myvolume がオープンされていたとしても削除します。以降、このボリュームに アクセスすると、ほぼ確実にパニックを起こします。 .It Fl i Ar millisecs -.Nm init +.Ic init または -.Nm start +.Ic start のコマンドを実行時、各ブロックのコピーの間に .Ar millisecs ミリ秒待ちます。 これにより、システム負荷を軽減できます。 .It Fl n Ar name ボリューム名を指定するために .Fl n オプションを使用します。単純な設定コマンド -.Nm concat , -.Nm mirror , -.Nm stripe +.Ic concat , +.Ic mirror , +.Ic stripe 用です。 .It Fl r .Fl r -.if t (``recursive: 再帰的'') -.if n ("recursive: 再帰的") +.Pq Dq recursive: 再帰的 オプションは表示系のコマンドで使い、 指示したオブジェクト だけでなく、下位のオブジェクトの情報も表示します。 例えば、 -.Nm lv +.Ic lv コマンドとともに使われる場合、 .Fl r オプションは対象のボリュームに属するプレックスとサブディスクの情報も表示します。 .It Fl s .Fl s -.if t (``statistics: 統計'') -.if n ("statistics: 統計") +.Pq Dq statistics: 統計 オプションは表示系のコマンドで統計情報を表示するために使います。 -.Nm mirror +.Ic mirror コマンドもこのオプションを使用し、 ストライプ化プレックスを作成すべきことを示します。 .It Fl S Ar size .Fl S オプションは、 -.Nm init +.Ic init と -.Nm start +.Ic start コマンドのための転送サイズを指定します。 .It Fl v .Fl v -.if t (``verbose: 冗長'') -.if n ("verbose: 冗長") +.Pq Dq verbose: 冗長 オプションは、 さらに詳細な情報を要求するために使用します。 .It Fl V .Fl V -.if t (``Very verbose: とても冗長'') -.if n ("Very verbose: とても冗長") +.Pq Dq Very verbose: とても冗長 オプションは、 .Fl v オプションが提供するものよりもさらに詳細な情報を要求するために使用します。 このフラグは .Nm init コマンドではベリファイを意味します。 .It Fl w .Fl w -.if t (``wait: 待ち'') -.if n ("wait: 待ち") +.Pq Dq wait: 待ち オプションは、 -.Nm init +.Ic init のように通常はバックグラウンドで実行するコマンドの完了を、 .Nm に待たせます。 .El -.Pp -.Ss コマンドの詳細 -.Pp +.Sh コマンドの詳細 .Nm コマンドは以下の機能を実行します。 -.Bl -hang -.It Nm attach Ar plex Ar volume -.Op Nm rename -.if n .sp -1v -.if t .sp -.6v -.It Nm attach Ar subdisk Ar plex Ar [offset] -.Op Nm rename -.sp -.Nm -.Ar attach +.Pp +.Bl -tag -width indent -compact +.It Ic attach Ar plex volume Op Cm rename +.It Xo +.Ic attach Ar subdisk plex +.Op Ar offset +.Op Cm rename +.Xc +.Nm Ic attach +.Nm Ic attach は指定されたプレックスやサブディスクをそれぞれボリュームやプレックスに 組み込みます。サブディスクに ついては、プレックス中の始点 (オフセット) を指定することができます。 指定がない場合、 サブディスクは有効な最初の位置に結合されます。空でないボリュームにプレックスが 結合されると、 .Nm はそのプレックスを再統合します。 .Pp -.Nm rename +.Cm rename キーワードが指定されると、 .Nm はオブジェクトの (プレックスの場合には下位のサブディスクの) 名前を変更して デフォルトの -.Nm +.Nm 命名規則に合わせます。 オブジェクトを他の名前に変更するには、 -.Nm rename +.Ic rename コマンドを使用します。 .Pp サブディスク結合に際しては、いくつか考慮すべきことがあります: .Bl -bullet .It サブディスクの結合対象は、通常、コンカチネート化プレックスのみです。 .It ストライプ化プレックスおよび RAID-5 プレックスにおいて サブディスクが失われた場合 (例えばドライブの故障後など)、 当該サブディスクを置き換えられるのは同じ大きさのサブディスクだけです。 .It ストライプ化または RAID-5 のプレックスに更にサブディスクを追加するには、 .Fl f (強制) オプションを使用します。プレックス内のデータを破壊します。 .\" ストライプ化および RAID-5 のプレックスに対しては、 .\" 別のサブディスクを結合することは、現在許されていません。 .It コンカチネート化プレックスに対しては、 .Ar offset パラメータが、プレックスの先頭からのブロック単位のオフセットを指定します。 ストライプ化プレックスおよび RAID-5 プレックスに対しては、 本パラメータは、サブディスクの最初のブロックのオフセットを指定します。 別の表現をするなら、オフセットは、 サブディスクの数値指定による位置とストライプの大きさとの積になります。 例えば、ブロックの大きさが 271k のプレックスでは、 最初のサブディスクはオフセット 0 に、2 番目のオフセットは 271k に、 3 番目は 542k に、などとなります。 この計算では、RAID-5 プレックスのパリティブロックは無視されます。 .El -.It Nm checkparity +.Pp +.It Xo +.Ic checkparity .Ar plex .Op Fl f .Op Fl v -.Pp +.Xc 指定した RAID-4 または RAID-5 プレックスのパリティブロックをチェックします。 この操作はプレックス中のポインタを維持しますので、 望むならば、一時停止して後で同じ場所から再開可能です。 さらに、このポインタは -.Nm rebuildparity +.Ic rebuildparity コマンドも使用します。 最初にパリティの問題が検出された箇所から、 パリティブロックの再構築を開始可能です。 .Pp .Fl f フラグが指定されると、 -.Nm checkparity +.Ic checkparity はプレックスの先頭からチェックを開始します。 .Fl v フラグが指定されると、 -.Nm checkparity +.Ic checkparity は進捗報告を表示します。 -.It Nm concat +.Pp +.It Xo +.Ic concat .Op Fl f .Op Fl n Ar name .Op Fl v .Ar drives -.br -.Nm concat +.Xc +.Ic concat コマンドは、単一のコンカチネート化プレックスからなるボリュームを作成する -.Nm create +.Ic create コマンドの、単純な代替手段です。 各ドライブ中の最大の連続空間が、 プレックスのサブディスク作成のために使用されます。 .Pp 通常、 -.Nm concat +.Ic concat コマンドは任意の名前をボリュームと構成要素に付けます。 名前はテキスト -.Ar vinum +.Dq Li vinum および小さな整数からなり、例えば -.Ar vinum3 +.Dq Li vinum3 となります。 ボリュームに対して指定した名前を割り当てる .Fl n Ar name オプションで、上書きすることが可能です。 プレックスとサブディスクの名前は、通常の作法で、ボリューム名からとられます。 .Pp ドライブの名前には選択の余地はありません。 ドライブが既に .Nm ドライブとして初期化されていた場合、名前はそのままになります。 そうでない場合、ドライブにはテキスト -.Ar vinumdrive +.Dq Li vinumdrive と小さな整数から始まる名前が与えられ、例えば -.Ar vinumdrive7 +.Dq Li vinumdrive7 となります。 -.Nm create +.Ic create コマンドと同様、 .Fl f オプションを使用して、以前の名前の上書きを指定可能です。 .Fl v オプションは、冗長な出力のために使用します。 .Pp -このコマンドの例は、後述の「単純な設定」の節を参照してください。 -.Cd create +このコマンドの例は、後述の +.Sx 単純な設定 +の節を参照してください。 +.Pp +.It Xo +.Ic create .Op Fl f .Ar description-file -.sp -.Nm -.Ar create +.Xc +.Nm Ic create はどのオブジェクトの作成にも使われます。相互の関連性が比較的複雑で .Nm オブジェクトの作成には潜在的に危険があることを考慮して、この機能には対話的な インタフェースはありません。 ファイル名を指定しないと、 .Nm は一時ファイルに対してエディタを起動します。 環境変数 .Ev EDITOR が設定されている場合、 .Nm はこのエディタを起動します。設定されていない場合のデフォルトは .Nm vi です。 -詳細は後述の設定ファイルの節を参照して下さい。 +詳細は後述の +.Sx 設定ファイル +の節を参照して下さい。 .Pp -.Nm -の -.Ar create +.Nm Ic create 機能は加法的であることに注意してください: 複数回実行すると、名前付けしていない全オブジェクトのコピーを、 複数生成することになります。 .Pp 通常 -.Nm create +.Ic create は既存の .Nm ドライブの名前を変更しません。これは、誤って消去してしまうのを避けるためです。 不要な .Nm ドライブを破棄する正しい方法は、 -.Nm resetconfig +.Ic resetconfig コマンドで設定をリセットすることです。 しかし、起動できない .Nm ドライブ上に新規データを生成する必要がある場合があります。 この場合、 -.Nm create Fl f +.Ic create Fl f を使用してください。 -.It Nm debug .Pp +.It Ic debug 引数無しの -.Nm -.Ar debug +.Nm Ic debug は、リモートカーネルデバッガに入るために使用します。これは .Nm が -.Ar VINUMDEBUG +.Dv VINUMDEBUG オプション付きで作成されている場合にのみ実行可能です。 このオプションはカーネルデバッガから抜け出るまでオペレーティング システムの実行を停止させます。 リモートデバッグが設定されており、 カーネルデバッガへのリモートコネクションがないと、 デバッガから抜け出るためにはシステムをリセットしてリブート することが必要になります。 -.It Nm debug -.Ar flags .Pp +.It Ic debug Ar flags 内部デバッグフラグのビットマスクを設定します。 本製品が改良されるにつれ、このビットマスクは警告無しに変更されるでしょう。 確認のために、ヘッダファイル -.Pa sys/dev/vinumvar.h +.Aq Pa sys/dev/vinumvar.h を見てください。 ビットマスクは次の値から構成されます: -.Bl -hang -.It DEBUG_ADDRESSES (1) -.br +.Bl -tag -width indent +.It Dv DEBUG_ADDRESSES Pq No 1 リクエスト中のバッファ情報を表示します。 -.ig -.It DEBUG_NUMOUTPUT (2) -.br -.Dv vp->v_numoutput -の値を表示します。 -.. -.It DEBUG_RESID (4) -.br +.\".It Dv DEBUG_NUMOUTPUT Pq No 2 +.\".Va vp->v_numoutput +.\" の値を表示します。 +.It Dv DEBUG_RESID Pq No 4 .Fn complete_rqe においてデバッガに移行します。 -.It DEBUG_LASTREQS (8) -.br +.It Dv DEBUG_LASTREQS Pq No 8 最新のリクエストのリングバッファを保存します。 -.It DEBUG_REVIVECONFLICT (16) -.br +.It Dv DEBUG_REVIVECONFLICT Pq No 16 再生における衝突に関する情報を表示します。 -.It DEBUG_EOFINFO (32) -.br -ストライププレックスで EOF を返すとき、内部状態の情報を表示します。 -.It DEBUG_MEMFREE (64) -.br +.It Dv DEBUG_EOFINFO Pq No 32 +ストライププレックスで +.Dv EOF +を返すとき、内部状態の情報を表示します。 +.It Dv DEBUG_MEMFREE Pq No 64 最後にメモリアロケータが解放したメモリ領域に関する循環リストを管理します。 -.It DEBUG_REMOTEGDB (256) -.br -.Nm debug +.It Dv DEBUG_REMOTEGDB Pq No 256 +.Ic debug コマンドが発行されたときに、リモート -.Ic gdb +.Nm gdb に移行します。 +.It Dv DEBUG_WARNINGS Pq No 512 +実装内のミラーの問題に関する警告を表示します。 .El -.It Nm detach Op Fl f -.Ar plex -.if n .sp -1v -.if t .sp -.6v -.It Nm detach Op Fl f -.Ar subdisk -.sp -.Nm -.Ar detach +.Pp +.It Xo +.Ic detach Oo Fl f Oc Ar plex +.Xc +.It Xo +.Ic detach Oo Fl f Oc Ar subdisk +.Xc +.Nm Ic detach は指定されたプレックスやサブディスクを、 結合されているボリュームやプレックスから 分離します。分離するとボリュームのデータが欠ける可能性のある 場合、この操作は .Fl f オプションを指定しない限り実行されません。 オブジェクトが上位のオブジェクトに従った名前になっている場合 -(例えば、プレックス vol1.p7 に結合されているサブディスク vol1.p7.s0 の場合)、 +(例えば、プレックス +.Li vol1.p7 +に結合されているサブディスク +.Li vol1.p7.s0 +の場合)、 その名前は頭に -.if t ``ex-'' -.if n "ex-" +.Dq Li ex- がついたものに変更されます -(例えば ex-vol1.p7.s0 に変更されます)。 +(例えば +.Li ex-vol1.p7.s0 +に変更されます)。 その後の処理で必要であれば、その名前から頭の部分が外されます。 .Pp ストライプ化プレックスおよび RAID-5 プレックスにおいては、 -.Nm detach +.Ic detach はサブディスク数を減らしません。 その代わり、サブディスクには存在しないという印が付けられ、後で -.Nm attach +.Ic attach コマンドを使用して交換可能となります。 -.It Nm dumpconfig Op Ar drive ... .Pp -.Nm -.Ar dumpconfig +.It Ic dumpconfig Op Ar drive ... +.Nm Ic dumpconfig は、指定されたドライブ上に保管された設定情報を表示します。ドライブ名が 指定されていない場合、 -.Nm dumpconfig +.Ic dumpconfig はシステム上にあるすべてのドライブから vinum パーティションを探し出し、 その情報をダンプします。設定の更新を無効にしている場合、このコマンドが 返す情報と -.Nm list +.Ic list コマンドが返す情報とが同じにならないことがあります。このコマンドは、 主に保守およびデバッグ用に使用されるものです。 -.It Nm info -.br -.Nm -.Ar info +.Pp +.It Ic info +.Nm Ic info は .Nm のメモリ使用に関する情報を表示します。これは主にデバッグのためのものです。 .Fl v オプションを付けると、使用中のメモリ領域についての詳細な情報を表示します。 .Pp .Fl V オプションを付けると、 .Nm ドライバが扱った最大 64 個までの最近の I/O リクエストに関する情報を、 -.Ar info +.Ic info は表示します。 この情報は、デバッグフラグ 8 が設定されているときのみ収集されます。 書式は次のようになります: -.Pp .Bd -literal vinum -> info -V Flags: 0x200 1 opens Total of 38 blocks malloced, total memory: 16460 Maximum allocs: 56, malloc table at 0xf0f72dbc Time Event Buf Dev Offset Bytes SD SDoff Doffset Goffset 14:40:00.637758 1VS Write 0xf2361f40 91.3 0x10 16384 14:40:00.639280 2LR Write 0xf2361f40 91.3 0x10 16384 14:40:00.639294 3RQ Read 0xf2361f40 4.39 0x104109 8192 19 0 0 0 14:40:00.639455 3RQ Read 0xf2361f40 4.23 0xd2109 8192 17 0 0 0 14:40:00.639529 3RQ Read 0xf2361f40 4.15 0x6e109 8192 16 0 0 0 14:40:00.652978 4DN Read 0xf2361f40 4.39 0x104109 8192 19 0 0 0 14:40:00.667040 4DN Read 0xf2361f40 4.15 0x6e109 8192 16 0 0 0 14:40:00.668556 4DN Read 0xf2361f40 4.23 0xd2109 8192 17 0 0 0 14:40:00.669777 6RP Write 0xf2361f40 4.39 0x104109 8192 19 0 0 0 14:40:00.685547 4DN Write 0xf2361f40 4.39 0x104109 8192 19 0 0 0 11:11:14.975184 Lock 0xc2374210 2 0x1f8001 11:11:15.018400 7VS Write 0xc2374210 0x7c0 32768 10 11:11:15.018456 8LR Write 0xc2374210 13.39 0xcc0c9 32768 11:11:15.046229 Unlock 0xc2374210 2 0x1f8001 .Ed .Pp .Ar Buf フィールドは、ユーザバッファヘッダのアドレスを常に含みます。 ユーザリクエストに関連付けられるリクエスト (複数可) を識別するために 使用できますが、100% 信頼できるものというわけではありません: 理論的には、シーケンス中の 2 個のリクエストが同じバッファヘッダを使い得ますが、 これは一般的ではありません。 リクエストの先頭は、イベント .Ar 1VS または .Ar 7VS で識別可能です。 前述の 1 番目の例は、ユーザ要求に関連するリクエストを示しています。 2 番目は、ロックを伴うサブディスク I/O リクエストです。 前記の例では、複数のリクエストが単一のユーザリクエストに含まれています。 .Pp .Ar Event フィールドは、 リクエストチェーン中のイベントシーケンスに関連する情報を含みます。 .Ar 1 から .Ar 6 までの数字はイベントの大まかなシーケンスを示し、 2 文字の省略形は位置のニーモニックです。 -.Bl -hang +.Bl -tag -width Lockwait .It 1VS (vinum の strategy) .Fn vinumstrategy の入口にある、ユーザリクエストに関する情報を表示します。 デバイス番号は .Nm デバイスであり、オフセットと長さはユーザパラメータです。 本ニーモニックは、常にリクエストシーケンスの先頭になります。 .It 2LR (リクエスト発行) 関数 .Fn launch_requests において低レベル .Nm リクエストを発行する直前の、ユーザリクエストを表示します。 パラメータは .Ar 1VS の情報と同じはずです。 +.El .Pp ここから後のリクエストでは、利用可能である場合、 .Ar Dev は関連付けられたディスクパーティションのデバイス番号であり、 .Ar Offset はパーティションの先頭からのオフセットであり、 .Ar SD は -.Dv vinum_conf +.Va vinum_conf 中のサブディスクインデックスであり。 .Ar SDoff はサブディスクの先頭からのオフセットであり、 .Ar Doffset は関連付けられたデータリクエストのオフセットであり、 .Ar Goffset は関連付けられたグループリクエストのオフセットです。 +.Bl -tag -width Lockwait .It 3RQ (リクエスト) 高レベルのリクエストを満たすために発行される、 いくつかありうる低レベル .Nm リクエストのうちのひとつを表示します。 この情報は、 .Fn launch_requests においても記録されます。 .It 4DN (完了) .Fn complete_rqe から呼ばれ、リクエストの完了を表示します。 この完了は、ステージ .Ar 4DN において .Fn launch_requests から発行されたリクエストか、またはステージ .Ar 5RD か .Ar 6RP の .Fn complete_raid5_write から発行されたリクエストにマッチするはずです。 .It 5RD -(RAID-5 データ) +(RAID-5 データ) .Fn complete_raid5_write から呼ばれ、 パリティ計算後に RAID-5 データストライプへ書き込まれたデータを表現します。 .It 6RP (RAID-5 パリティ) .Fn complete_raid5_write から呼ばれ、 パリティ計算後に RAID-5 パリティストライプへ書き込まれたデータを表現します。 .It 7VS サブディスク I/O リクエストを表示します。 通常、これらのリクエストは .Nm 内部のものであり、プレックスの初期化や再構築といった操作に使用します。 .It 8LR サブディスク I/O リクエストのために生成した、低レベル操作を表示します。 .It Lockwait プロセスがレンジロックを待っていることを示します。 パラメータは、リクエストに関連付けられたバッファヘッダと、 プレックス番号と、ブロック番号です。 内部的な理由で、ブロック番号は、 ストライプ開始アドレスよりも 1 個大きくなっています。 .It Lock レンジロックを取得済みであることを示します。 パラメータはレンジロックと同じです。 .It Unlock レンジロックを解放済みであることを示します。 パラメータはレンジロックと同じです。 .El .\" XXX -.It Nm init Op Fl S -.Ar size +.Pp +.It Xo +.Ic init +.Op Fl S Ar size .Op Fl w .Ar plex | subdisk -.Pp -.Nm -.Ar init +.Xc +.Nm Ic init は指定したサブディスクに 0 を書き込んで初期化します。 プレックスが指定された場合はプレックス内の全サブディスクを初期化できます。 これはプレックス中のデータに矛盾のないことを確実にする唯一の方法です。 RAID-5 プレックスの使用前には、この初期化が必要です。 他の新規プレックスに対しても、この初期化を推奨します。 .Nm はプレックス中のすべてのサブディスクを並行して初期化します。 この操作には長い時間が かかるため、通常バックグラウンドで実行されます。 このコマンドの完了を待ちたい場合、 .Fl w (待ち) オプションを使用してください。 .Pp .Fl S オプションでデフォルト値の 16 kB と異なるサイズの書き込みブロックを 指定できます。 .Nm は初期化が完了するとコンソールメッセージを出力します。 -.It Nm label -.Ar volume .Pp -.Nm label +.It Ic label Ar volume +.Ic label コマンドは、ボリュームに -.Ar ufs +.Em ufs 形式のボリュームラベルを書き込みます。これは適切に -.Ar disklabel +.Ic disklabel を呼び出すことに対しての、単純な代替方法です。 いくつかの -.Ar ufs +.Em ufs コマンドはラベルを入手するために正規の -.Ar ioctl +.Xr ioctl 2 コールを使わず、依然としてラベルを捜してディスクの読み込みを行う ため、このコマンドは必要になります。 .Nm はボリュームのデータとは別にボリュームラベルを保持しているため、この コマンドは -.Ar newfs -用には必要ありません。 このコマンドの価値は低下しています。 +.Xr newfs 8 +用には必要ありません。 +このコマンドの価値は低下しています。 .Pp -.It Nm list +.It Xo +.Ic list .Op Fl r .Op Fl V -.Op volume | plex | subdisk -.if n .sp -1v -.if t .sp -.6v -.It Nm l +.Op Ar volume | plex | subdisk +.Xc +.It Xo +.Ic l .Op Fl r .Op Fl V -.Op volume | plex | subdisk -.if n .sp -1v -.if t .sp -.6v -.It Nm ld +.Op Ar volume | plex | subdisk +.Xc +.It Xo +.Ic ld .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op volume -.if n .sp -1v -.if t .sp -.6v -.It Nm ls +.Op Ar volume +.Xc +.It Xo +.Ic ls .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op subdisk -.if n .sp -1v -.if t .sp -.6v -.It Nm lp +.Op Ar subdisk +.Xc +.It Xo +.Ic lp .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op plex -.if n .sp -1v -.if t .sp -.6v -.It Nm lv +.Op Ar plex +.Xc +.It Xo +.Ic lv .Op Fl r .Op Fl s .Op Fl v .Op Fl V -.Op volume -.Pp -.Ar list +.Op Ar volume +.Xc +.Ic list は指定したオブジェクトの情報を表示するために使われます。引数が省略されると .Nm が認識しているすべてのオブジェクトについての情報が表示されます。 -.Ar l +.Ic l コマンドは -.Ar list +.Ic list と同じものです。 .Pp .Fl r オプションはボリュームとプレックスに関連します。 指定されると、そのオブジェクト下位のサブディスクと (ボリュームに対しては) プレックスの情報を再帰的に表示します。 -.Ar lv , -.Ar lp , -.Ar ls , -.Ar ld +.Ic lv , +.Ic lp , +.Ic ls , +.Ic ld のコマンドは、それぞれボリューム、プレックス、サブディスク、そしてドライブの 情報だけを表示します。これはパラメータを指定しないで使う場合に特に有用です。 .Pp .Fl s オプションで .Nm は装置の統計情報を出力するようになり、 -.Op Fl v +.Fl v (verbose: 饒舌な) オプションはいくらかの付加情報を出力させ、 そして -.Op Fl V +.Fl V は数多くの付加情報を出力させます。 -.It Nm makedev -.br -.Nm makedev -コマンドは、ディレクトリ /dev/vinum を除去した上で、 +.Pp +.It Ic makedev +.Ic makedev +コマンドは、ディレクトリ +.Pa /dev/vinum +を除去した上で、 現在の設定を反映するようなデバイスノードと共にこのディレクトリを再作成します。 本コマンドは、通常の場合に使用されることを意図していません。 非常時にのみ使用するために提供しています。 .Pp -.It Nm mirror +.It Xo +.Ic mirror .Op Fl f .Op Fl n Ar name .Op Fl s .Op Fl v .Ar drives -.br -.Nm mirror +.Xc +.Ic mirror コマンドは、ミラー化ボリュームを作成する -.Nm create +.Ic create コマンドの、単純な代替手段です。 オプションを指定しないと、RAID-1 (ミラー化) ボリュームを、 2 つのコンカチネート化ボリュームで作成します。 各ドライブ中の最大の連続空間が、 プレックスのサブディスク作成のために使用されます。 1 番目のプレックスは、リストの奇数番号のドライブから構築され、 2 番目のプレックスは、リストの偶数番号のドライブから構築されます。 ドライブの大きさが異なる場合、プレックスの大きさは異なるでしょう。 .Pp .Fl s オプションを指定すると、 -.Nm mirror +.Ic mirror はストライプの大きさが 256 kB のストライプ化プレックスを構築します。 各プレックスのサブディスクの大きさは、 プレックスを構成するドライブの中で、最小の連続ストレージの大きさです。 ここでもまた、プレックスの大きさは異なるかもしれません。 .Pp 通常、 -.Nm mirror +.Ic mirror コマンドは任意の名前をボリュームと構成要素に付けます。 名前はテキスト -.Ar vinum +.Dq Li vinum および小さな整数からなり、例えば -.Ar vinum3 +.Dq Li vinum3 となります。 ボリュームに対して指定した名前を割り当てる .Fl n Ar name オプションで、上書きすることが可能です。 プレックスとサブディスクの名前は、通常の作法で、ボリューム名からとられます。 .Pp ドライブの名前には選択の余地はありません。 ドライブが既に .Nm ドライブとして初期化されていた場合、名前はそのままになります。 そうでない場合、ドライブにはテキスト -.Ar vinumdrive +.Dq Li vinumdrive と小さな整数から始まる名前が与えられ、例えば -.Ar vinumdrive7 +.Dq Li vinumdrive7 となります。 -.Nm create +.Ic create コマンドと同様、 .Fl f オプションを使用して、以前の名前の上書きを指定可能です。 .Fl v オプションは、冗長な出力のために使用します。 .Pp -このコマンドの例は、後述の「単純な設定」の節を参照してください。 -.It Nm mv Fl f Ar drive Ar object ... -.It Nm move Fl f Ar drive Ar object ... +このコマンドの例は、後述の +.Sx 単純な設定 +の節を参照してください。 .Pp +.It Ic mv Fl f Ar drive object ... +.It Ic move Fl f Ar drive object ... 指定したオブジェクトから新しいドライブへすべてのサブディスクを移動します。 オブジェクトは、サブディスク、ドライブあるいはプレックスです。ドライブ またはプレックスが指定された場合、オブジェクトに関係するすべての サブディスクが移動されます。 .Pp この機能は現在サブディスク中のデータを保存しないため .Fl f オプションが必要です。 この付加機能は、後日追加されます。しかしながら、この状態でも、故障した ディスクドライブを復旧させるのには十分です。 -.It Nm printconfig Op Pa file .Pp +.It Ic printconfig Op Ar file 現在の設定のコピーを、 .Nm 設定を再生成可能な書式で、 -.Pa file +.Ar file に書き込みます。 ディスク上に保存された設定とは違い、ドライブの定義を含みます。 -.Pa file +.Ar file を指定しないと、 .Nm は一覧を -.Pa stdout +.Dv stdout へ書き込みます。 -.It Nm quit +.Pp +.It Ic quit 対話モードで実行中のときに、 .Nm プログラムを終了します。通常は、文字 -.Ar EOF +.Dv EOF を入力することで実現できます。 -.It Nm read -.Ar disk Op disk... .Pp -.Nm read +.It Ic read Ar disk ... +.Ic read コマンドは、指定したディスクを走査し、作成済の設定情報を含む .Nm パーティションを探します。 そして、最近更新されたものから過去に更新されたものの順番で、 設定を読み込みます。 .Nm は最新のすべての設定情報を各ディスクパーティションに保持しています。 このコマンドの パラメータとして、設定の中の全スライスを指定する必要があります。 .Pp -.Nm read +.Ic read コマンドは、他の .Nm パーティションを持つシステム上で、 .Nm 設定を選択的にロードすることを意図しています。 システム上の全パーティションを起動したい場合、 -.Nm start +.Ic start コマンドを使用する方が簡単です。 .Pp 本コマンド実行時に .Nm がエラーになると、 ディスク上のコピーが壊れないようにするため、自動的な設定更新を無効にします。 これは、ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持たないサブディスク) 場合にも同様です。 再度更新をオンにするには、 -.Nm setdaemon +.Ic setdaemon と -.Nm saveconfig +.Ic saveconfig のコマンドを使用してください。 デーモンオプションマスクのビット 2 をリセットして、 設定保存を再度有効にしてください。 -.It Nm rebuildparity +.Pp +.It Xo +.Ic rebuildparity .Ar plex .Op Fl f .Op Fl v .Op Fl V -.Pp +.Xc 指定した RAID-4 または RAID-5 プレックスのパリティブロックを再構築します。 この操作はプレックス中のポインタを維持しますので、 望むならば、一時停止して後で同じ場所から再開可能です。 さらに、このポインタは -.Nm checkparity +.Ic checkparity コマンドも使用します。 最初にパリティの問題が検出された箇所から、 パリティブロックの再構築を開始可能です。 .Pp .Fl f フラグが指定されると、 -.Nm rebuildparity +.Ic rebuildparity はプレックスの先頭から再構築を開始します。 .Fl v フラグが指定されると、 -.Nm rebuildparity +.Ic rebuildparity はまず既存のパリティブロックをチェックし、 再構築前に、不整合情報を表示します。 .Fl V フラグが指定されると、 .Nm rebuildparity は進捗報告を表示します。 -.It Nm rename +.Pp +.It Xo +.Ic rename .Op Fl r .Ar [ drive | subdisk | plex | volume ] .Ar newname -.Pp +.Xc 指定したオブジェクトの名前を変更します。 .Fl r オプションが指定されると、下位のオブジェクトがデフォルトの規則に従って命名され -ます。プレックスの名前はボリューム名に .p\f(BInumber\fP を付加して作られ、 -サブディスクの名前はプレックス名に .s\f(BInumber\fP を付加して作られます。 -.ig -.It Nm replace -.Ar drive -.Ar newdrive -.Pp -指定したドライブから新しいドライブへすべてのサブディスクを移動します。 -これは回復可能なサブディスクを回復しようとします。そして、回復不可能な -サブディスクを最初から作ります。 -もし、新しいドライブにこの操作のための容量が不足する時は、できるだけ -多くのサブディスクを新しいドライブ上に組み込み、残りを元のドライブに -残します。 -.. -.It Nm resetconfig -.Pp -.Nm resetconfig +ます。プレックスの名前はボリューム名に +.Li .p Ns Ar number +を付加して作られ、 +サブディスクの名前はプレックス名に +.Li .s\f Ns Ar number +を付加して作られます。 +.\" .It Xo +.\" .Ic replace +.\" .Ar drive +.\" .Ar newdrive +.\" .Pp +.\" 指定したドライブから新しいドライブへすべてのサブディスクを移動します。 +.\" これは回復可能なサブディスクを回復しようとします。そして、回復不可能な +.\" サブディスクを最初から作ります。 +.\" もし、新しいドライブにこの操作のための容量が不足する時は、できるだけ +.\" 多くのサブディスクを新しいドライブ上に組み込み、残りを元のドライブに +.\" 残します。 +.Pp +.It Ic resetconfig +.Ic resetconfig コマンドはシステム内の .Nm 設定を完全に削除します。設定を完全に消去したい場合にだけ使って下さい。 .Nm -は確認を求めます。NO FUTURE (前途なし) という語句を以下の通りに入力する必要が +は確認を求めます。 +.Li "NO FUTURE" +(前途なし) という語句を以下の通りに入力する必要が あります。 .Bd -unfilled -offset indent -# \f(CBvinum resetconfig\f(CW +.No # Nm Ic resetconfig WARNING! This command will completely wipe out your vinum configuration. All data will be lost. If you really want to do this, enter the text NO FUTURE -Enter text -> \f(BINO FUTURE\fP +.No "Enter text ->" Sy "NO FUTURE" Vinum configuration obliterated (訳注: ここから上記テキストの翻訳です) 警告! このコマンドはあなたの vinum 設定を完全に消し去ります。 全データは失われます。本当にこれを実行したい場合は、語句 NO FUTURE を入力して下さい。 入力してください -> \f(BINO FUTURE\fP vinum の設定は削除されました。 (訳注: ここまで上記テキストの翻訳です) .Ed -.ft R .Pp メッセージが示すように、どたん場のコマンドです。 既存の設定をもう見たくもないとき以外は、このコマンドを使わないでください。 -.It Nm resetstats -.Op Fl r -.Op volume | plex | subdisk .Pp +.It Xo +.Ic resetstats +.Op Fl r +.Op Ar volume | plex | subdisk +.Xc .Nm は各オブジェクトについて多数の統計カウンタを保持しています。詳細は ヘッダファイル -.Pa vinumvar.h +.Aq Pa sys/dev/vinumvar.h を参照して下さい。 .\" XXX 仕上がったらここに入れる これらのカウンタをリセットするためには -.Nm resetstats +.Ic resetstats コマンドを使って下さい。 .Fl r オプションも共に指定すると、 .Nm は下位のオブジェクトのカウンタもリセットします。 -.It Nm rm +.Pp +.It Xo +.Ic rm .Op Fl f .Op Fl r .Ar volume | plex | subdisk -.Pp -.Nm rm +.Xc +.Ic rm はオブジェクトを .Nm 設定から消去します。ひとたびオブジェクトが消去されるとそれを復旧する方法は ありません。通常 .Nm はオブジェクトを消去する前に数多くの一貫性確認を行います。 .Fl f オプションを指定すると、 .Nm はこの確認を省略し、オブジェクトを無条件に消去します。このオプションは細心の 注意を払って使用して下さい。ボリューム上のすべてのデータを失うことも あり得ます。 .Pp 通常、 .Nm は下位にプレックスを持つボリュームや、下位にサブディスクを持つプレックスを 消去することを拒否します。 .Fl f フラグを指定すると、 .Nm は無条件にオブジェクトを消去します。または .Fl r (recursive: 再帰的) フラグを使うことで、同様に下位のオブジェクトを 消去することができます。 .Fl r フラグを付けてボリュームを消去すると、プレックスとそれに属するサブディスクも 消去します。 -.It Nm saveconfig .Pp +.It Ic saveconfig 現在の設定をディスクに保存します。 .Nm は自動的に設定変更を保存するので、通常これは不要です。 起動時にエラーが発生した場合、更新は無効化されます。 -.Ar setdaemon +.Ic setdaemon コマンドで再度有効化しても、 .Nm は設定を自動的にはディスクへ保存しません。 このコマンドを使用して設定を保存してください。 -.ig -.It Nm set -.Op Fl f -.Ar state -.Ar volume | plex | subdisk | disk -.Nm set -は指定したオブジェクトに、妥当な状態 (下記「オブジェクト状態」参照) のひとつを -セットします。 -通常、 -.Nm -は変更を加える前に非常に多くの一貫性の調査を実行します。 -.Fl f -オプションを指定すると、 -.Nm -はこの調査を省略し、無条件に変更を行います。このオプションは大いに注意して -使って下さい。ボリューム上のすべてのデータを失うこともあり得ます。 -.\"XXX -.Nm このコマンドはまだ実装されていません。 -.. -.It Nm setdaemon -.Op value -.Pp -.Nm setdaemon +.\".It Xo +.\".Ic set +.\".Op Fl f +.\".Ar state +.\".Ar volume | plex | subdisk | disk +.\".Xc +.\".Ic set +.\"は指定したオブジェクトに、妥当な状態 (下記 +.\".Sx オブジェクト状態 +.\"参照) のひとつを +.\"セットします。 +.\"通常、 +.\".Nm +.\"は変更を加える前に非常に多くの一貫性の調査を実行します。 +.\".Fl f +.\"オプションを指定すると、 +.\".Nm +.\"はこの調査を省略し、無条件に変更を行います。このオプションは大いに注意して +.\"使って下さい。ボリューム上のすべてのデータを失うこともあり得ます。 +.Pp +.It Ic setdaemon Op Ar value +.Ic setdaemon は .Nm デーモンの変数ビットマスクを設定します。 本コマンドは一時的なものであり、将来置き換えられます。 現在、ビットマスクにはビット 1 (全アクションを syslog へ記録する) と ビット 4 (設定を更新しない) があります。 オプションビット 4 はエラー回復時に有用かもしれません。 -.It Nm setstate -.Ar state -.Op Ar volume | plex | subdisk | drive .Pp -.Nm setstate -指定したオブジェクトの状態を指定した状態に設定します。 +.It Xo +.Ic setstate Ar state +.Op Ar volume | plex | subdisk | drive +.Xc +.Ic setstate +は、指定したオブジェクトの状態を指定した状態に設定します。 .Nm の通常の一貫性機構はバイパスされます。回復の目的でのみ使用すべきです。 このコマンドを誤って使用すると、システムを破壊する可能性があります。 -.It Nm start +.Pp +.It Xo +.Ic start .Op Fl S Ar size .Op Fl w -.Op volume | plex | subdisk -.Pp -.Nm start +.Op Ar plex | subdisk +.Xc +.Ic start は 1 つまたはそれ以上の .Nm オブジェクトを起動します ( -.Ar up +.Em up 状態に移行させます)。 .Pp オブジェクト名を指定しないと、システムが .Nm ドライブであると知っているディスクを、 .Nm は走査します。その後、 -.Nm read +.Ic read コマンドのところに書いてあるように、設定を読み込みます。 .Nm ドライブにはそのドライブ中のデータについてのすべての情報を持つヘッダが 入っており、その情報としてはプレックスとボリュームを表現するために必要な 他のドライブの名前を含んでいます。 .Pp 本コマンド実行時に .Nm がエラーになると、 ディスク上のコピーが壊れないようにするため、自動的な設定更新を無効にします。 これは、ディスク上の設定が、設定エラーを示す (例えば、有効な空間指定を持たないサブディスク) 場合にも同様です。 再度更新をオンにするには、 -.Nm setdaemon +.Ic setdaemon と -.Nm saveconfig +.Ic saveconfig のコマンドを使用してください。 デーモンオプションマスクのビット 4 をリセットして、 設定保存を再度有効にしてください。 .Pp オブジェクト名が指定されると、 .Nm はそれらを起動します。 通常、この操作はサブディスクに対してのみ行います。 動作はオブジェクトの現在の状態に依存します: .Bl -bullet .It オブジェクトが既に -.Ar up +.Em up 状態の場合、 .Nm はなにもしません。 .It オブジェクトがサブディスクであり、 -.Ar down +.Em down または -.Ar reborn +.Em reborn の状態の場合、 .Nm は -.Ar up +.Em up 状態に変更します。 .It オブジェクトがサブディスクであり、 -.Ar empty +.Em empty 状態の場合、変更はサブディスクに依存します。 サブディスクがプレックスの一部であり このプレックスが他のプレックスを含むボリュームの一部である場合、 .Nm はサブディスクを -.Ar reviving +.Em reviving 状態にし、データをボリュームからコピーしようとします。 操作完了時に、サブディスクは -.Ar up +.Em up 状態に設定されます。 サブディスクがプレックスの一部であり このプレックスが他のプレックスを含まないボリュームの一部である場合、 またはサブディスクがプレックスの一部ではない場合、 .Nm は即時にサブディスクを -.Ar up +.Em up 状態にします。 .It オブジェクトがサブディスクであり、 -.Ar reviving +.Em reviving 状態である場合、 .Nm は -.Ar revive +再生 操作をオフラインにて継続します。 操作完了時に、サブディスクは -.Ar up +.Em up 状態に設定されます。 .El .Pp サブディスクが -.Ar up +.Em up 状態になると、 .Nm は自動的に、 サブディスクが属す可能性のあるプレックスとボリュームの状態をチェックし、 これらの状態を適切に更新します。 .Pp オブジェクトがプレックスの場合、 -.Nm start +.Ic start は下位のサブディスクの (ボリュームの場合にはこれに加えてプレックスの) 状態を チェックし、起動可能なサブディスクを起動します。 .Pp マルチプレックスボリュームの中の 1 つのプレックスを起動するには、 ボリューム中の他のプレックスからデータをコピーする必要があります。 これにはしばしば長い時間がかかるため、バックグラウンドで実行されます。 この操作が完了することを待ちたい場合 (例えば、この操作をスクリプト中で実行している場合)、 .Fl w オプションを使用してください。 .Pp データのコピーにはたいして時間がかかりません。それは、さらに重大な負荷を システムにかけ得ます。 .Fl S オプションで転送サイズを、 .Fl i オプションで各ブロックを転送する間隔を (ミリ秒で) 指定可能です。 どちらもシステム負荷を軽減します。 -.It Nm stop -.Op Fl f -.Op volume | plex | subdisk .Pp +.It Xo +.Ic stop +.Op Fl f +.Op Ar volume | plex | subdisk +.Xc パラメータを指定しないと、 -.Nm stop +.Ic stop は .Nm -kld を削除し、 -.Nm +KLD を削除し、 +.Xr vinum 4 を停止します。 活動状態のオブジェクトが存在しない場合のみ、行うことが可能です。 特に、 .Fl f オプションはこの要求に優先しません。 通常、 -.Nm stop +.Ic stop コマンドは、終了前に現在の設定をディスクへ書き戻します。 設定の更新が無効になっている場合にはこれはできませんので、 設定の更新が無効になっている場合には .Nm は停止しません。 これを上書きするには .Fl f オプションを指定します。 .Pp -.Nm stop +.Ic stop コマンドは .Nm -が kld としてロードされている場合のみ動作します。 +が KLD としてロードされている場合のみ動作します。 静的に構成されたドライバをアンロードすることはできないからです。 .Nm が静的に構成されている場合、 -.Nm -.Nm stop +.Nm Ic stop は失敗します。 .Pp オブジェクト名が指定されると、 -.Nm stop +.Ic stop はそのオブジェクトへのアクセスを無効化します。 オブジェクトに下位オブジェクトがある場合、 それらのサブオブジェクトは既に非活動状態 (stop また error) となっているか、 .Fl r と .Fl f のオプションが指定されていることが必要です。 このコマンドは、オブジェクトを設定から取り除きません。 -.Nm start +.Ic start コマンドの後で再度アクセスができるようになります。 .Pp デフォルトでは .Nm は動作中のオブジェクトは停止しません。例えば、動作中のボリュームに結合 されているプレックスは停止できないし、オープン中のボリュームは停止できません。 .Fl f オプションは .Nm にこの確認を省略して無条件に削除するよう指示します。このオプションは 大いに注意し、よく理解した上で使って下さい。もし間違って使うとひどい データ破壊を起こすことがあります。 -.It Nm stripe +.Pp +.It Xo +.Ic stripe .Op Fl f .Op Fl n Ar name .Op Fl v .Ar drives -.br -.Nm stripe +.Xc +.Ic stripe コマンドは、単一のストライプ化プレックスからなるボリュームを作成する -.Nm create +.Ic create コマンドの、単純な代替手段です。 サブディスクの大きさは、 全ドライブで利用可能な最大の連続空間の大きさです。 ストライプの大きさは 256 kB に固定されています。 .Pp 通常、 -.Nm stripe +.Ic stripe コマンドは任意の名前をボリュームと構成要素に付けます。 名前はテキスト -.Ar vinum +.Dq Li vinum および小さな整数からなり、例えば -.Ar vinum3 +.Dq Li vinum3 となります。 ボリュームに対して指定した名前を割り当てる .Fl n Ar name オプションで、上書きすることが可能です。 プレックスとサブディスクの名前は、通常の作法で、ボリューム名からとられます。 .Pp ドライブの名前には選択の余地はありません。 ドライブが既に .Nm ドライブとして初期化されていた場合、名前はそのままになります。 そうでない場合、ドライブにはテキスト -.Ar vinumdrive +.Dq Li vinumdrive と小さな整数から始まる名前が与えられ、例えば -.Ar vinumdrive7 +.Dq Li vinumdrive7 となります。 -.Nm create +.Ic create コマンドと同様、 .Fl f オプションを使用して、以前の名前の上書きを指定可能です。 .Fl v オプションは、冗長な出力のために使用します。 .Pp -このコマンドの例は、後述の「単純な設定」の節を参照してください。 +このコマンドの例は、後述の +.Sx 単純な設定 +の節を参照してください。 .El .Sh 単純な設定 この節では、 -.Nm concat , -.Nm mirror , -.Nm stripe +.Ic concat , +.Ic mirror , +.Ic stripe コマンドを使用する、 .Nm 設定の単純なインタフェースを説明します。 これらのコマンドは、大概の通常状況では便利な設定を作成しますが、 -.Nm create +.Ic create コマンド程の柔軟性はありません。 .Pp コマンドの解説は前述を参照してください。 ここでは例を示します。どれも同じディスクを使用しています。 最初のドライブ .Pa /dev/da1h は他のドライブよりも小さいことに注意してください。 各サブディスクの大きさに影響があります。 .Pp 次に示す例ではすべて .Fl v オプションを使用することにより、システムに渡すコマンドを見せ、 ボリュームの構造を列挙します。 .Fl v オプションを使用しないと、これらのコマンドは何も出力しません。 .Ss 単一コンカチネート化プレックスのボリューム 単一コンカチネート化プレックスのボリュームを使用し、 最大のストレージ容量を得ます。 ただし、ドライブ故障への耐性はありません。 .Bd -literal -vinum -> concat -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h +vinum -> concat -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h volume vinum0 plex name vinum0.p0 org concat drive vinumdrive0 device /dev/da1h sd name vinum0.p0.s0 drive vinumdrive0 size 0 drive vinumdrive1 device /dev/da2h sd name vinum0.p0.s1 drive vinumdrive1 size 0 drive vinumdrive2 device /dev/da3h sd name vinum0.p0.s2 drive vinumdrive2 size 0 drive vinumdrive3 device /dev/da4h sd name vinum0.p0.s3 drive vinumdrive3 size 0 V vinum0 State: up Plexes: 1 Size: 2134 MB P vinum0.p0 C State: up Subdisks: 4 Size: 2134 MB S vinum0.p0.s0 State: up PO: 0 B Size: 414 MB S vinum0.p0.s1 State: up PO: 414 MB Size: 573 MB S vinum0.p0.s2 State: up PO: 988 MB Size: 573 MB S vinum0.p0.s3 State: up PO: 1561 MB Size: 573 MB .Ed .Pp この場合、4 ディスクすべての空間を使用し、 ボリュームの大きさは 2134 MB になります。 .Ss 単一ストライプ化プレックスのボリューム 単一ストライプ化プレックスのボリュームは コンカチネート化プレックスよりも性能が良いかもしれません。 しかし、ストライプ化プレックスの制約により、 ボリュームは小さいかもしれません。 これもまたドライブ故障の耐性はありません。 .Bd -literal vinum -> stripe -v /dev/da1h /dev/da2h /dev/da3h /dev/da4h drive vinumdrive0 device /dev/da1h drive vinumdrive1 device /dev/da2h drive vinumdrive2 device /dev/da3h drive vinumdrive3 device /dev/da4h volume vinum0 plex name vinum0.p0 org striped 256k sd name vinum0.p0.s0 drive vinumdrive0 size 849825b sd name vinum0.p0.s1 drive vinumdrive1 size 849825b sd name vinum0.p0.s2 drive vinumdrive2 size 849825b sd name vinum0.p0.s3 drive vinumdrive3 size 849825b V vinum0 State: up Plexes: 1 Size: 1659 MB P vinum0.p0 S State: up Subdisks: 4 Size: 1659 MB S vinum0.p0.s0 State: up PO: 0 B Size: 414 MB S vinum0.p0.s1 State: up PO: 256 kB Size: 414 MB S vinum0.p0.s2 State: up PO: 512 kB Size: 414 MB S vinum0.p0.s3 State: up PO: 768 kB Size: 414 MB .Ed .Pp この場合、サブディスクの大きさは利用できるディスクの最小に制限され、 ボリュームの大きさは 1659 MB になります。 .Ss 2 つのコンカチネート化プレックスのミラー化ボリューム 信頼性を向上するため、ミラー化およびボリューム化を使用します: .Bd -literal vinum -> mirror -v -n mirror /dev/da1h /dev/da2h /dev/da3h /dev/da4h drive vinumdrive0 device /dev/da1h drive vinumdrive1 device /dev/da2h drive vinumdrive2 device /dev/da3h drive vinumdrive3 device /dev/da4h volume mirror setupstate plex name mirror.p0 org concat sd name mirror.p0.s0 drive vinumdrive0 size 0b sd name mirror.p0.s1 drive vinumdrive2 size 0b plex name mirror.p1 org concat sd name mirror.p1.s0 drive vinumdrive1 size 0b sd name mirror.p1.s1 drive vinumdrive3 size 0b V mirror State: up Plexes: 2 Size: 1146 MB P mirror.p0 C State: up Subdisks: 2 Size: 988 MB P mirror.p1 C State: up Subdisks: 2 Size: 1146 MB S mirror.p0.s0 State: up PO: 0 B Size: 414 MB S mirror.p0.s1 State: up PO: 414 MB Size: 573 MB S mirror.p1.s0 State: up PO: 0 B Size: 573 MB S mirror.p1.s1 State: up PO: 573 MB Size: 573 MB .Ed .Pp この例ではボリューム名を .Ar mirror と指定しています。 1 つのドライブの大きさが他のドライブよりも小さいため、 2 つのプレックスの大きさは異なり、 ボリュームの最後の 158 MB には耐性がありません。 このような状況で完全な信頼性を保証するためには、 -.Nm create +.Ic create コマンドを使用して 988 MB のボリュームを作成します。 .Ss 2 つのストライプ化プレックスのミラー化ボリューム 今度は、2 つのストライプ化プレックスのミラー化ボリュームを作成するために .Fl s オプションを使用します: .Bd -literal vinum -> mirror -v -n raid10 -s /dev/da1h /dev/da2h /dev/da3h /dev/da4h drive vinumdrive0 device /dev/da1h drive vinumdrive1 device /dev/da2h drive vinumdrive2 device /dev/da3h drive vinumdrive3 device /dev/da4h volume raid10 setupstate plex name raid10.p0 org striped 256k sd name raid10.p0.s0 drive vinumdrive0 size 849825b sd name raid10.p0.s1 drive vinumdrive2 size 849825b plex name raid10.p1 org striped 256k sd name raid10.p1.s0 drive vinumdrive1 size 1173665b sd name raid10.p1.s1 drive vinumdrive3 size 1173665b V raid10 State: up Plexes: 2 Size: 1146 MB P raid10.p0 S State: up Subdisks: 2 Size: 829 MB P raid10.p1 S State: up Subdisks: 2 Size: 1146 MB S raid10.p0.s0 State: up PO: 0 B Size: 414 MB S raid10.p0.s1 State: up PO: 256 kB Size: 414 MB S raid10.p1.s0 State: up PO: 0 B Size: 573 MB S raid10.p1.s1 State: up PO: 256 kB Size: 573 MB .Ed .Pp この場合、使用可能なボリュームはより小さくなります。 なぜなら、最小のドライブに適合するように、 第 1 プレックスが小さくなったためです。 -.Ss 設定ファイル +.Sh 設定ファイル .Nm では、 -.Nm create +.Ic create コマンドに渡すすべての引数は設定ファイルに入っている必要があります。 設定ファイルのエントリは、ボリュームやプレックスやサブディスクを定義します。 エントリは 1 行に 1 つということ以外には決まった書式はありません。 -.Pp .Ss スケールファクタ これらの値は、バイトで指定しても良いですし、 次のスケールファクタのいずれか 1 つを後に付けても良いです: -.Bl -hang +.Bl -tag -width indent .It s 値が 512 バイトのセクタ数であることを示します。 .It k 値がキロバイト数であることを示します (1024 バイト)。 .It m 値がメガバイト数であることを示します (1048576 バイト)。 .It g 値がギガバイト数であることを示します (1073741824 バイト)。 .It b -VERITAS との互換性のために使用します。 +.Tn VERITAS +との互換性のために使用します。 これは、512 バイトのブロック数を意味します。 -``ブロック'' という語を別の意味で使用していますので、 +.Dq ブロック +という語を別の意味で使用していますので、 この短縮形は混乱させるものです。 この短縮形の価値は低下しています。 .El .Pp 例えば、16777216 バイトという値は、 -.Nm 16m , -.Nm 16384k , -.Nm 32768s +.Em 16m , +.Em 16384k , +.Em 32768s のいずれの表記も可能です。 .Pp 設定ファイルには以下のエントリを記述することができます。 .Pp -.Bl -hang -width 4n -.It Nm drive Ar name devicename -.Op options -.Pp +.Bl -tag -width 4n +.It Ic drive Ar name devicename Op Ar options ドライブを定義します。オプションは次の通りです: -.Pp -.Bl -hang -width 18n -.It Nm device Ar devicename +.Bl -tag -width 18n +.It Cm device Ar devicename ドライブが乗るデバイスを指定します。 .Ar devicename は、例えば .Pa /dev/da1e や .Pa /dev/ad3s2h といったパーティションである必要があり、タイプ -.Nm +.Em vinum である必要があります。 -.Nm c +.Dq Li c パーティションを使用してはなりません。 これはディスク全体のために予約されているからです。 -.It Nm hotspare +.It Cm hotspare ドライブを -.Do -ホットスペア -.Dc +.Dq ホットスペア ドライブであると定義します。 これは、故障したドライブと自動的に交換するために管理されます。 .Nm はこのドライブを他の用途に使用することを許しません。 特に、サブディスクをこの上に作成できません。 この機能はまだ完全には実装されていません。 .El -.It Nm volume -.Ar name -.Op options -.Pp +.It Ic volume Ar name Op Ar options .Ar name という名前でボリュームを定義します。 -.Pp オプションには次のものがあります。 -.Pp -.Bl -hang -width 18n +.Bl -tag -width 18n +.It Cm plex Ar plexname .It Nm plex Ar plexname 指定したプレックスをボリュームに追加します。 .Ar plexname が .Ar * として指定されると、 .Nm は設定ファイル中のボリューム定義の後で、次の妥当なエントリとなり得るプレックス の定義を捜します。 -.It Nm readpol Ar policy +.It Cm readpol Ar policy ボリュームの -.Ar read policy +.Em read policy (読み込み方針) を定義します。 .Ar policy は -.Nm round +.Cm round か -.Nm prefer Ar plexname +.Cm prefer Ar plexname のどちらかです。 .Nm は読み込み要求を、ただ 1 つのプレックスによって満たします。 -.Ar round -読み込み方針は、読み込みを別々のプレックスから \fIラウンドロビン\fR\| 方式で +.Cm round +読み込み方針は、読み込みを別々のプレックスから +.Em ラウンドロビン +方式で 行うように指定します。 .Ar prefer 読み込み方針では、指定したプレックスから毎回読み込みを行います。 -.It Nm setupstate -.Pp +.It Cm setupstate マルチプレックスボリュームを作成する際に、すべてのプレックスの内容に一貫性が あると仮定します。通常こうなることはないため、デフォルトでは、 最初のプレックスを除いたすべてのプレックスを .Em faulty 状態に設定します。 -.Nm start +.Ic start コマンドを使って、最初に一貫性のある状態にする必要があります。しかし ストライプ化プレックスとコンカチネート化プレックスの場合には、普通は一貫性が ないままでも問題にはなりません。ボリュームをファイルシステムや スワップパーティションとして使う場合にはディスク上の以前の内容は どうでもよいため、それは無視されます。この危険を受け入れる場合には、 -.Nm setupstate +.Cm setupstate キーワードを使って下さい。 設定ファイル中でボリュームの直後で定義されるプレックスに対してのみ 適用されます。 後でプレックスをボリュームに追加する場合には、 これらのプレックスを -.Nm start +.Ic start コマンドで統合する必要があります。 .Pp RAID-5 プレックスには -.Nm init -を使うことが \fI必要\fP\| なことに注意して下さい。さもないと +.Ic init +を使うことが +.Em 必要 +なことに注意して下さい。さもないと 1 つのサブディスクに障害が起きた時、大きくデータが破壊されます。 -.fi .El -.It Nm plex Op options -.Pp +.It Ic plex Op Ar options プレックスを定義します。ボリュームとは違い、名前は不要です。 オプションには次のものを指定可能です: -.Pp -.Bl -hang -width 18n -.It Nm name Ar plexname +.Bl -tag -width 18n +.It Cm name Ar plexname プレックスの名前を指定します。プレックスやサブディスクに名前をつける場合には -.Ar name +.Cm name キーワードが必要になることに注意して下さい。 -.sp -.It Nm org Ar organization Op stripesize -.Pp +.It Cm org Ar organization Op Ar stripesize プレックスの編成を指定します。 .Ar organization は -.Ar concat +.Cm concat か -.Ar striped +.Cm striped か -.Ar raid5 +.Cm raid5 のいずれかです。 -.Ar striped +.Cm striped と -.Ar raid5 +.Cm raid5 のプレックスに対しては .Ar stripesize 引数を指定する必要がありますが、 -.Ar concat +.Cm concat のプレックスに対しては省略する必要があります。 .Ar striped タイプについては各ストライプの幅を指定します。 .Ar raid5 については、グループの大きさを指定します。 グループとはプレックスの一部分であり、 同じサブディスクに入っているすべてのデータのパリティが入っています。 それはプレックスの大きさの約数である必要があり (つまり、プレックスの大きさをストライプの大きさで割ったものは 整数である必要があり)、 ディスクセクタ長 (512バイト) の倍数である必要があります。 -.sp +.Pp 最適な性能のためには、ストライプの大きさは少なくとも 128kB であるべきです。 これより小さくすると、 個々のリクエストが複数のディスクに対して割り当てられることにより、 I/O のアクティビティが非常に増加します。 本マッピングによる並行転送数増加に起因する性能向上は、 レイテンシ増加に起因する性能劣化を引き起しません。 ストライプの大きさの目安は、256 kB から 512 kB の間です。 2 の羃乗は避けるべきです。 2 の羃乗を使用すると、すべてのスーパブロックを 最初のサブディスクに置く傾向があるからです。 .Pp ストライプ化プレックスは最低 2 つのサブディスクを持つ必要がありますし (そうでないとコンカチネート化プレックスになります)、 それぞれは同じ大きさである必要があります。 RAID-5 プレックスは最低 3 つのサブディスクを持つ必要があり、 それぞれは同じ大きさである必要があります。 実際には RAID-5 プレックスは最低 5 つのサブディスクから構成されるべきです。 -.Pp -.It Nm volume Ar volume +.It Cm volume Ar volname プレックスを、指定したボリュームに追加します。 -.Nm volume +.Cm volume キーワードが指定されないと、プレックスは設定ファイル中の最後に記述された ボリュームに追加されます。 -.sp -.It Nm sd Ar sdname Ar offset +.It Cm sd Ar sdname offset 指定したサブディスクをプレックスの .Ar offset の位置に追加します。 -.br -.fi .El -.It Nm subdisk Op options -.Pp +.It Ic subdisk Op Ar options サブディスクを定義します。オプションには次のものを指定可能です: -.Pp .Bl -hang -width 18n -.nf -.sp -.It Nm name Ar name +.It Cm name Ar name サブディスクの名前を指定します。これは必ずしも指定する必要は -ありません\(em 上記の「オブジェクトの命名」を参照してください。 +ありません。 +上記の +.Sx オブジェクトの命名 +を参照してください。 サブディスクに名前をつける場合には -.Ar name +.Cm name キーワードを指定する必要があることに注意して下さい。 -.sp -.It Nm plexoffset Ar offset +.It Cm plexoffset Ar offset プレックス内のサブディスクの始点を指定します。指定がないと、 .Nm はすでにサブディスクがあればその直後の領域を割り当て、なければ プレックスの先頭から割り当てます。 -.sp -.It Nm driveoffset Ar offset +.It Cm driveoffset Ar offset ドライブ内のサブディスクの始点を指定します。指定がないと、 .Nm はドライブ中で最初の .Ar length バイト連続の空き領域を割り当てます。 -.sp -.It Nm length Ar length +.It Cm length Ar length サブディスクの大きさを指定します。このキーワードは必須です。 デフォルト値はありません。 値 0 を指定すると、 -.if t ``ドライブ上で最大限利用可能な連続空き領域を使用'' -.if n "ドライブ上で最大限利用可能な連続空き領域を使用" +.Dq ドライブ上で最大限利用可能な連続空き領域を使用 という意味になります。 ドライブが空の場合、サブディスクとしてドライブ全体を使用することを意味します。 -.Nm length +.Cm length は -.Nm len +.Cm len と短縮することもできます。 -.sp -.It Nm plex Ar plex +.It Cm plex Ar plex サブディスクが属すプレックスを指定します。デフォルトでは、サブディスクは 最後に記述されたプレックスに属します。 -.sp -.It Nm drive Ar drive +.It Cm drive Ar drive サブディスクが乗るドライブを指定します。デフォルトでは最後に記述された ドライブ上に位置します。 -.br -.fi .El .El .Sh 設定ファイル例 .Bd -literal # vinum 設定ファイル例 # # ドライブ drive drive1 device /dev/da1h drive drive2 device /dev/da2h drive drive3 device /dev/da3h drive drive4 device /dev/da4h drive drive5 device /dev/da5h drive drive6 device /dev/da6h # 1 つのストライプ化プレックスをもつボリューム volume tinyvol plex org striped 512b sd length 64m drive drive2 sd length 64m drive drive4 volume stripe plex org striped 512b sd length 512m drive drive2 sd length 512m drive drive4 # 2 つのプレックス volume concat plex org concat sd length 100m drive drive2 sd length 50m drive drive4 plex org concat sd length 150m drive drive4 # 1 つのストライプ化プレックスと 1 つのコンカチネート化プレックスを持つボリューム volume strcon plex org striped 512b sd length 100m drive drive2 sd length 100m drive drive4 plex org concat sd length 150m drive drive2 sd length 50m drive drive4 # 1 つの RAID-5 プレックスと 1 つのストライプ化プレックスを持つボリューム # RAID-5 ボリュームの方が 1 つのサブディスク分だけ大きいことに注意 volume vol5 plex org striped 64k sd length 1000m drive drive2 sd length 1000m drive drive4 plex org raid5 32k sd length 500m drive drive1 sd length 500m drive drive2 sd length 500m drive drive3 sd length 500m drive drive4 sd length 500m drive drive5 .Ed -.Ss ドライブレイアウト上の考慮点 +.Sh ドライブレイアウト上の考慮点 現在、 .Nm -ドライブは BSD ディスクパーティションです。それは +ドライブは +.Bx +ディスクパーティションです。それは 他の用途で使用されているデータの上書きを避けるために -.Ar vinum +.Em vinum タイプである必要があります。 -.Nm disklabel -.Ar -e +.Nm disklabel Fl e を使用して、パーティションタイプ定義を編集してください。 次の表示は、 -.Nm disklabel +.Xr disklabel 8 が示す典型的なパーティションレイアウトです: .Bd -literal 8 partitions: # size offset fstype [fsize bsize bps/cpg] a: 81920 344064 4.2BSD 0 0 0 # (Cyl. 240*- 297*) b: 262144 81920 swap # (Cyl. 57*- 240*) c: 4226725 0 unused 0 0 # (Cyl. 0 - 2955*) e: 81920 0 4.2BSD 0 0 0 # (Cyl. 0 - 57*) f: 1900000 425984 4.2BSD 0 0 0 # (Cyl. 297*- 1626*) g: 1900741 2325984 vinum 0 0 0 # (Cyl. 1626*- 2955*) .Ed -.sp +.Pp この例では、パーティション -.Nm g +.Dq Li g を .Nm パーティションとして使用可能です。パーティション -.Nm a , -.Nm e , -.Nm f +.Dq Li a , +.Dq Li e , +.Dq Li f は、 -.Nm UFS +.Em UFS ファイルシステムまたは -.Nm ccd +.Em ccd パーティションとして使用可能です。パーティション -.Nm b +.Dq Li b はスワップパーティションであり、パーティション -.Nm c +.Dq Li c はディスク全体を表現するため他の用途に使用できません。 .Pp .Nm は各パーティションの先頭から 265 セクタを設定情報に使用するため、 サブディスクの最大の大きさはドライブよりも 265 セクタ小さくなります。 .Sh ログファイル .Nm はログファイルを管理します。 ログファイルは、デフォルトでは .Pa /var/tmp/vinum_history であり、 .Nm に対して発行したコマンドの履歴を保持します。 環境変数 -.Ev VINUM_HISTORY +.Ev VINUM_HISTORY をファイルの名前に設定することにより、 このファイルの名前をオーバライド可能です。 .Pp ログファイル中のメッセージの前には日付が付きます。 デフォルトの書式は -.Li %e %b %Y %H:%M:%S +.Qq Li %e %b %Y %H:%M:%S です。書式の文字列に関するさらなる詳細については .Xr strftime 3 を参照してください。 これは環境変数 .Ev VINUM_DATEFORMAT でオーバライド可能です。 .Sh VINUM 設定法 本節では、 .Nm システムの実装方法に関する、現実的なアドバイスを行います。 .Ss データを何処に置くか まず決定が必要な選択は、データを何処に置くかです。 .Nm 専用のディスクパーティションが必要です。 これらは、デバイスやパーティション -.Nm c +.Dq Li c ではなく、パーティションであるべきでです。 例えば、適切な名前とは、 .Pa /dev/da0e や .Pa /dev/ad3s4a です。 不適切な名前とは、パーティションではなくデバイスを表現する .Pa /dev/da0 , .Pa /dev/da0s1 や、ディスク全体を表現しタイプ -.Nm unused +.Em unused であるべき .Pa /dev/ad1c です。 -前述の、「ドライブレイアウト上の考察点」下にある使用例を参照してください。 +前述の、 +.Sx ドライブレイアウト上の考察点 +下にある使用例を参照してください。 .Ss ボリュームのデザイン .Nm ボリュームの設定方法は、あなたの意図に依存します。 次のように多くの可能性があります: .Bl -enum .It 多くの小さなディスクを結合して、 適切な大きさのファイルシステムを作成したいと考えるかもしれません。 例えば、小さなディスクを 5 個持っていて、 全空間を単一ボリュームとして使用したい場合、次のような設定ファイルを書きます: -.Bd -literal -offset 4n +.Bd -literal -offset indent drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e drive d5 device /dev/da6e volume bigger plex org concat sd length 0 drive d1 sd length 0 drive d2 sd length 0 drive d3 sd length 0 drive d4 sd length 0 drive d5 .Ed .Pp この場合、サブディスクの長さを 0 と指定します。 これは、 -.if t ``ドライブ上にある空き空間のうち、最大領域を使用する'' -.if n "ドライブ上にある空き空間のうち、最大領域を使用する" +.Dq ドライブ上にある空き空間のうち、最大領域を使用する ことを意味します。 指定するサブディスクが、ドライブ上の唯一のサブディスクである場合、 このサブディスクは使用可能な空間全体を使用します。 .It ディスク故障に対する追加の回復力 (レジリエンス; resilience) を .Nm に与えたい場合を考えます。 選択肢としては、 -.if t ``ミラーリング'' -.if n "ミラーリング" +.Dq ミラーリング とも呼ばれる RAID-1 か、 -.if t ``パリティ'' -.if n "パリティ" +.Dq パリティ とも呼ばれる RAID-5 があります。 .Pp ミラーリングの設定のためには、 単一ボリュームの中に複数のプレックスを作成する必要があります。 例えば、 2 GB のミラー化ボリュームを作成するには、 次のような設定ファイルを作成します: -.Bd -literal -offset 4n +.Bd -literal -offset indent drive d1 device /dev/da2e drive d2 device /dev/da3e volume mirror plex org concat sd length 2g drive d1 plex org concat sd length 2g drive d2 .Ed .Pp ミラー化ドライブを作成するときには、 各プレックスからのデータが、 違う物理ディスク上にあることを保証することが重要です。 これにより、単一ドライブ故障においても、 .Nm はボリュームの完全なアドレス空間にアクセス可能となります。 各プレックスが、 完全なボリュームと同じだけのデータを必要とすることに注意してください: この例では、ボリュームは 2 GB の大きさですが、各プレックス (と各サブディスク) は 2 GB を必要としますので、全体のディスクストレージ要求は 4 GB となります。 .Pp RAID-5 の設定をするには、タイプ -.Ar raid5 +.Cm raid5 の単一プレックスを作成します。 例えば、回復力を持つ 2 GB に相当するボリュームを作成するには、 次のような設定ファイルを使用します: -.Bd -literal -offset 4n +.Bd -literal -offset indent drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e drive d5 device /dev/da6e volume raid plex org raid5 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 sd length 512m drive d5 .Ed .Pp RAID-5 プレックスは、最低 3 個のサブディスクを必要とします。 これらのうち 1 個には、パリティ情報を格納するので、 データストレージとしては使用しません。 より多くのディスクを使用すると、 より多くの割合のディスクストレージを、 データストレージとして使用可能となります。 この例では、総ストレージ使用量は 2.5 GB です。 これに対し、ミラー設定での総ストレージ使用量は 4 GB です。 最小の 3 個のディスクだけを使用する場合、 情報格納のために次のように 3 GB を必要とします: -.Bd -literal -offset 4n +.Bd -literal -offset indent drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e volume raid plex org raid5 512k sd length 1g drive d1 sd length 1g drive d2 sd length 1g drive d3 .Ed .Pp ミラー化ドライブを作成するときには、 各サブディスクからのデータが、 違う物理ディスク上にあることを保証することが重要です。 これにより、単一ドライブ故障においても、 .Nm はボリュームの完全なアドレス空間にアクセス可能となります。 .It また、 .Nm の設定により、 ファイルシステムへのアクセスの並行性を増したいと考えるかもしれません。 多くの場合、単一のファイルシステムへのアクセスは、 ディスク速度により制限されます。 ボリュームを複数のディスクに分散することにより、 複数アクセス環境でのスループットを増すことが可能です。 この技術は、単一アクセス環境では、 ほとんど効果がないかまったく効果がありません。 .Nm は -.if t ``ストライピング'' -.if n "ストライピング" +.Dq ストライピング または RAID-0 とも呼ばれる技術を使用し、アクセスの並行性を増します。 RAID-0 という名称は誤解を生じさせるものです: なぜなら、ストライピングは冗長性も更なる信頼性も提供しないからです。 実際、信頼性は低下します。 なぜなら、単一ディスクの故障はボリュームを使用不可とし、 多くのディスクを使うほどこれらのうち 1 個が故障する確率は増加するからです。 .Pp ストライピングの実装のためには、 -.Ar striped +.Cm striped (ストライプ化) プレックスを使用します: -.Bd -literal -offset 4n +.Bd -literal -offset indent drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e volume raid plex org striped 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 .Ed .Pp ストライプ化プレックスの最低サブディスク数は 2 個です。 多くのディスクを使用するほど、性能が向上します。 .It 両方の最良点を得ることにより、回復力と性能の両方を得ることを考えます。 これは、RAID-10 (RAID-1 と RAID-0 の組み合わせ) と呼ばれることがあります。 この名称もまた誤解を生じさせるものです。 .Nm では、次のような設定ファイルを使用可能です: .Bd -literal -offset 4n drive d1 device /dev/da2e drive d2 device /dev/da3e drive d3 device /dev/da4e drive d4 device /dev/da5e volume raid setupstate plex org striped 512k sd length 512m drive d1 sd length 512m drive d2 sd length 512m drive d3 sd length 512m drive d4 plex org striped 512k sd length 512m drive d4 sd length 512m drive d3 sd length 512m drive d2 sd length 512m drive d1 .Ed .Pp ここでは、プレックスはストライプ化され、性能を向上しています。 そして、このようなプレックスが 2 個あり、回復力を向上しています。 この例で、2 番目のプレックスのサブディスクの順番が、 1 番目のプレックスの逆になっていることに注意してください。 これは性能のためであり、後で議論します。 更に、ボリューム指定にキーワード -.Ar setupstate +.Cm setupstate を含み、全プレックスが作成後に -.Ar up +.Em up となることを保証しています。 .El .Ss ボリュームの作成 ひとたび設定ファイルを作成した後は、 .Nm を起動し、ボリュームを作成します。 この例では、設定ファイルは .Pa configfile です: -.Bd -literal - # vinum create -v configfile - 1: drive d1 device /dev/da2e - 2: drive d2 device /dev/da3e - 3: volume mirror - 4: plex org concat - 5: sd length 2g drive d1 - 6: plex org concat - 7: sd length 2g drive d2 - Configuration summary - - Drives: 2 (4 configured) - Volumes: 1 (4 configured) - Plexes: 2 (8 configured) - Subdisks: 2 (16 configured) - - Drive d1: Device /dev/da2e - Created on vinum.lemis.com at Tue Mar 23 12:30:31 1999 - Config last updated Tue Mar 23 14:30:32 1999 - Size: 60105216000 bytes (57320 MB) - Used: 2147619328 bytes (2048 MB) - Available: 57957596672 bytes (55272 MB) - State: up - Last error: none - Drive d2: Device /dev/da3e - Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999 - Config last updated Tue Mar 23 14:30:33 1999 - Size: 60105216000 bytes (57320 MB) - Used: 2147619328 bytes (2048 MB) - Available: 57957596672 bytes (55272 MB) - State: up - Last error: none - - Volume mirror: Size: 2147483648 bytes (2048 MB) - State: up - Flags: - 2 plexes - Read policy: round robin - - Plex mirror.p0: Size: 2147483648 bytes (2048 MB) - Subdisks: 1 - State: up - Organization: concat - Part of volume mirror - Plex mirror.p1: Size: 2147483648 bytes (2048 MB) - Subdisks: 1 - State: up - Organization: concat - Part of volume mirror - - Subdisk mirror.p0.s0: - Size: 2147483648 bytes (2048 MB) - State: up - Plex mirror.p0 at offset 0 - - Subdisk mirror.p1.s0: - Size: 2147483648 bytes (2048 MB) - State: up - Plex mirror.p1 at offset 0 +.Bd -literal -offset 2n +# vinum create -v configfile + 1: drive d1 device /dev/da2e + 2: drive d2 device /dev/da3e + 3: volume mirror + 4: plex org concat + 5: sd length 2g drive d1 + 6: plex org concat + 7: sd length 2g drive d2 +Configuration summary + +Drives: 2 (4 configured) +Volumes: 1 (4 configured) +Plexes: 2 (8 configured) +Subdisks: 2 (16 configured) + +Drive d1: Device /dev/da2e + Created on vinum.lemis.com at Tue Mar 23 12:30:31 1999 + Config last updated Tue Mar 23 14:30:32 1999 + Size: 60105216000 bytes (57320 MB) + Used: 2147619328 bytes (2048 MB) + Available: 57957596672 bytes (55272 MB) + State: up + Last error: none +Drive d2: Device /dev/da3e + Created on vinum.lemis.com at Tue Mar 23 12:30:32 1999 + Config last updated Tue Mar 23 14:30:33 1999 + Size: 60105216000 bytes (57320 MB) + Used: 2147619328 bytes (2048 MB) + Available: 57957596672 bytes (55272 MB) + State: up + Last error: none + +Volume mirror: Size: 2147483648 bytes (2048 MB) + State: up + Flags: + 2 plexes + Read policy: round robin + +Plex mirror.p0: Size: 2147483648 bytes (2048 MB) + Subdisks: 1 + State: up + Organization: concat + Part of volume mirror +Plex mirror.p1: Size: 2147483648 bytes (2048 MB) + Subdisks: 1 + State: up + Organization: concat + Part of volume mirror + +Subdisk mirror.p0.s0: + Size: 2147483648 bytes (2048 MB) + State: up + Plex mirror.p0 at offset 0 + +Subdisk mirror.p1.s0: + Size: 2147483648 bytes (2048 MB) + State: up + Plex mirror.p1 at offset 0 .Ed .Pp .Fl v フラグは、設定に従ってファイルをリストするよう、 .Nm に指示します。その後、 -.Nm list Fl v +.Ic list Fl v コマンドと同じ書式で、現在の設定をリストします。 .Ss より多くのボリュームを作成する ひとたび -.Nm +.Nm ボリュームを作成した後は、 .Nm はこれらの情報を内部の設定ファイルにて管理します。 再度作成する必要はありません。 特に、 -.Nm create +.Ic create コマンドを再実行すると、追加のオブジェクトを作ることになります: .Bd -literal -.if t .ps -2 - # vinum create sampleconfig - Configuration summary - - Drives: 2 (4 configured) - Volumes: 1 (4 configured) - Plexes: 4 (8 configured) - Subdisks: 4 (16 configured) - - D d1 State: up Device /dev/da2e Avail: 53224/57320 MB (92%) - D d2 State: up Device /dev/da3e Avail: 53224/57320 MB (92%) - - V mirror State: up Plexes: 4 Size: 2048 MB - - P mirror.p0 C State: up Subdisks: 1 Size: 2048 MB - P mirror.p1 C State: up Subdisks: 1 Size: 2048 MB - P mirror.p2 C State: up Subdisks: 1 Size: 2048 MB - P mirror.p3 C State: up Subdisks: 1 Size: 2048 MB - - S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB - S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB - S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB - S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB -.if t .ps +# vinum create sampleconfig +Configuration summary + +Drives: 2 (4 configured) +Volumes: 1 (4 configured) +Plexes: 4 (8 configured) +Subdisks: 4 (16 configured) + +D d1 State: up Device /dev/da2e Avail: 53224/57320 MB (92%) +D d2 State: up Device /dev/da3e Avail: 53224/57320 MB (92%) + +V mirror State: up Plexes: 4 Size: 2048 MB + +P mirror.p0 C State: up Subdisks: 1 Size: 2048 MB +P mirror.p1 C State: up Subdisks: 1 Size: 2048 MB +P mirror.p2 C State: up Subdisks: 1 Size: 2048 MB +P mirror.p3 C State: up Subdisks: 1 Size: 2048 MB + +S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB +S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB +S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB +S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB .Ed .Pp この例では (今回は .Fl f フラグを付けています)、 -.Nm create +.Ic create の再実行により 4 個の新規プレックスを作成し、 それぞれが新規サブディスクを持ちます。 他のボリュームを追加したい場合、これらのための新規設定ファイルを作成します。 .Nm が既に知っているドライブを参照する必要はありません。 例えば、ボリューム .Pa raid を 4 個のディスク .Pa /dev/da1e , .Pa /dev/da2e , .Pa /dev/da3e , .Pa /dev/da4e 上に作成するには、他の 2 個についてのみ記述するだけで良いです: -.Bd -literal - drive d3 device /dev/da1e - drive d4 device /dev/da4e - volume raid - plex org raid5 512k - sd size 2g drive d1 - sd size 2g drive d2 - sd size 2g drive d3 - sd size 2g drive d4 +.Bd -literal -offset indent +drive d3 device /dev/da1e +drive d4 device /dev/da4e +volume raid + plex org raid5 512k + sd size 2g drive d1 + sd size 2g drive d2 + sd size 2g drive d3 + sd size 2g drive d4 .Ed .Pp この設定ファイルでは、次のようになります: .Bd -literal - # vinum create newconfig - Configuration summary - - Drives: 4 (4 configured) - Volumes: 2 (4 configured) - Plexes: 5 (8 configured) - Subdisks: 8 (16 configured) - - D d1 State: up Device /dev/da2e Avail: 51176/57320 MB (89%) - D d2 State: up Device /dev/da3e Avail: 53220/57320 MB (89%) - D d3 State: up Device /dev/da1e Avail: 53224/57320 MB (92%) - D d4 State: up Device /dev/da4e Avail: 53224/57320 MB (92%) - - V mirror State: down Plexes: 4 Size: 2048 MB - V raid State: down Plexes: 1 Size: 6144 MB - - P mirror.p0 C State: init Subdisks: 1 Size: 2048 MB - P mirror.p1 C State: init Subdisks: 1 Size: 2048 MB - P mirror.p2 C State: init Subdisks: 1 Size: 2048 MB - P mirror.p3 C State: init Subdisks: 1 Size: 2048 MB - P raid.p0 R5 State: init Subdisks: 4 Size: 6144 MB - - S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB - S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB - S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB - S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB - S raid.p0.s0 State: empty PO: 0 B Size: 2048 MB - S raid.p0.s1 State: empty PO: 512 kB Size: 2048 MB - S raid.p0.s2 State: empty PO: 1024 kB Size: 2048 MB - S raid.p0.s3 State: empty PO: 1536 kB Size: 2048 MB +# vinum create newconfig +Configuration summary + +Drives: 4 (4 configured) +Volumes: 2 (4 configured) +Plexes: 5 (8 configured) +Subdisks: 8 (16 configured) + +D d1 State: up Device /dev/da2e Avail: 51176/57320 MB (89%) +D d2 State: up Device /dev/da3e Avail: 53220/57320 MB (89%) +D d3 State: up Device /dev/da1e Avail: 53224/57320 MB (92%) +D d4 State: up Device /dev/da4e Avail: 53224/57320 MB (92%) + +V mirror State: down Plexes: 4 Size: 2048 MB +V raid State: down Plexes: 1 Size: 6144 MB + +P mirror.p0 C State: init Subdisks: 1 Size: 2048 MB +P mirror.p1 C State: init Subdisks: 1 Size: 2048 MB +P mirror.p2 C State: init Subdisks: 1 Size: 2048 MB +P mirror.p3 C State: init Subdisks: 1 Size: 2048 MB +P raid.p0 R5 State: init Subdisks: 4 Size: 6144 MB + +S mirror.p0.s0 State: up PO: 0 B Size: 2048 MB +S mirror.p1.s0 State: up PO: 0 B Size: 2048 MB +S mirror.p2.s0 State: up PO: 0 B Size: 2048 MB +S mirror.p3.s0 State: up PO: 0 B Size: 2048 MB +S raid.p0.s0 State: empty PO: 0 B Size: 2048 MB +S raid.p0.s1 State: empty PO: 512 kB Size: 2048 MB +S raid.p0.s2 State: empty PO: 1024 kB Size: 2048 MB +S raid.p0.s3 State: empty PO: 1536 kB Size: 2048 MB .Ed .Pp RAID-5 プレックスの大きさに注意してください: 6 GB しかありませんが、 これを構成するためにディスク空間を 8 GB 使用しています。 これは、サブディスク 1 個分相当をパリティデータ格納に使用しているからです。 .Ss Vinum の再起動 システムのリブート時に、 -.Nm start +.Ic start コマンドで .Nm を起動します: -.Bd -literal - # vinum start -.Ed +.Pp +.Dl "# vinum start" .Pp これにより、システム中の全 .Nm ドライブが起動します。 なんらかの理由で一部のドライブのみを起動したい場合、 -.Nm read +.Ic read コマンドを使用してください。 .Ss 性能関連 最高性能の RAID アレイ設定に関する、多くの誤った考えが存在しています。 特に、ほとんどのシステムで使用しているストライプの大きさは、小さ過ぎます。 以降の議論は、 .Nm だけでなく、全 RAID システムにあてはまります。 .Pp .Fx のブロック I/O システムは、.5 kB から 128 kB までの要求を発行します; .\" mix = workload mix ? 典型的なミックスでは、ほぼ 8 kB です。 どんなストライピングシステムにおいても、 ある要求が 2 個の物理要求に分割されることを避けることはできませんし、 ストライプを十分細かくするならばより多くに分割されてしまいます。 これにより、甚大な性能劣化となります: ディスクあたりの転送時間の削減は、 より大きなオーダで増加するレイテンシによって相殺されてしまいます。 .Pp 最近のディスクの大きさと .Fx のブロック I/O システムでは、 ストライプの大きさを 256 kB から 512 kB にすると、 適度に少数な要求に分割されることを期待できます; 正しい RAID の実装では、 大きなディスクでのストライプの大きさを 2 または 4 MB に増さない 明確な理由はありません。 .Pp ストライプサイズを選択するときには、 最新の UFS ファイルシステムのシリンダグループの大きさは 32 MB であることを 認識していてください。 ストライプサイズとディスク数が共に 2 の累乗の場合、 すべてのスーパブロックと inode が同一のサブディスクに置かれる可能性があります。 これは、性能に重大な影響を与えます。 代りに奇数、例えば 479 kB を選択してください。 .Pp 複数アクセスシステムでの転送のインパクトを考えるためのもっとも容易な方法は、 潜在的なボトルネック、すなわちディスクサブシステムの観点から見ることです: つまり、転送に要するディスク時間の総計はいくらか?です。 ほとんどすべてがキャッシュされているので、 要求と完了との時間的な関係はそれほど重要ではありません: 重要なパラメータは、要求がディスクを活動状態にする総時間であり、 この間ディスクは他の転送ができなくなります。 この結果、転送が同時に発生しても違う時に発生しても、 実際には問題とはなりません。 実際的には、我々が見ている時間は、レイテンシの総和 (位置決定時間と回転遅延、 言い替えるとデータがディスクヘッド下に来るまでの時間) と総転送時間です。 同じ速度のディスクへの転送においては、 転送時間は転送の大きさの合計のみに依存します。 .Pp 24 kB の典型的なニュースの記事やウェブページを考えると、 これは 1 回の I/O で読み込めます。 ディスクが転送レート 6 MB/s で平均位置決定時間 8 ms であり、 ファイルシステムを 4 kB ブロックであるとします。 24 kB ですから、断片化を考慮する必要はなく、 ファイルは 4 kB 境界から開始します。 必要な転送回数はブロック開始位置に依存します: 式は (S + F - 1) / S となり、 S はファイルシステムブロック数でのストライプの大きさ、 F はファイルシステムブロック数でのファイルの大きさです。 -.Pp .Bl -enum .It ストライプの大きさは 4 kB。転送回数は 6 回。 サブシステムの負荷: レイテンシ 48 ms、転送 2 ms、合計 50 ms。 -.It +.It ストライプの大きさは 8 kB。転送回数は 3.5 回。 サブシステムの負荷: レイテンシ 28 ms、転送 2 ms、合計 30 ms。 -.It +.It ストライプの大きさは 16 kB。転送回数は 2.25 回。 サブシステムの負荷: レイテンシ 18 ms、転送 2 ms、合計 20 ms。 -.It +.It ストライプの大きさは 256 kB。平均転送回数は 1.08 回。 サブシステムの負荷: レイテンシ 8.6 ms、転送 2 ms、合計 10.6 ms。 -.It +.It ストライプの大きさは 4 MB。平均転送回数は 1.0009 回。 サブシステムの負荷: レイテンシ 8.01 ms、転送 2 ms、合計 10.01 ms。 -.El +.El .Pp ハードウェア RAID システムによっては、 大きなストライプでは問題があるものがあるようです: このようなシステムでは完全なストライプを常にディスクとの間で転送するようで、 大きなストライプは性能に逆効果となります。 .Nm ではこの問題の被害を受けません: すべてのディスク転送を最適化し、不要なデータを転送しないからです。 .Pp 良く知られたベンチマークプログラムで真の複数アクセス状態 (100 を越える同時ユーザ) をテストするものはないので、 この主張の正しさを証明することは困難であることに注意してください。 .Pp これらのことを考えると、次の事項が .Nm ボリュームの性能に影響します: .Bl -bullet .It ストライピングは、複数アクセスのみの性能を向上します。 各要求が違うディスク上にある確率が増加するからです。 .It 複数ドライブにまたがるコンカチネート化 UFS ファイルシステムもまた、 複数ファイルアクセスの性能を向上します。 UFS は、ファイルシステムをシリンダグループに分割し、 ファイルを単一のシリンダグループに置こうとするからです。 一般的に、ストライピングほどは効果がありません。 .It ミラーリングは、読み込み複数アクセスの性能を向上可能です。 デフォルトでは .Nm は、連続する複数の読み込みを、 連続する複数のプレックスに対して発行するからです。 .It ミラーリングは、複数アクセスか単一アクセスかに関わらず、 すべての書き込みの性能を劣化させます。 両方のプレックスに対し、データを書き込む必要があるからです。 これが、前述のミラーリング設定におけるサブディスクのレイアウトの説明です: 各プレックス中の対応するサブディスクが別の物理ディスクにある場合、 書き込みコマンドは並列に発行可能です。 しかし、同じ物理ディスクにある場合、逐次的に実行されてしまいます。 .It RAID-5 の読み込みは、 ストライプ化の読み込みと本質的に同じ考慮すべき点があります。 ただし、ストライプ化プレックスがミラー化ボリュームの一部である場合を除きます。 この場合、ミラー化ボリュームの方が性能が良くなります。 .It RAID-5 の書き込みは、ストライプ化の書き込みの約 25% の速度です: 書き込みを行うには、 .Nm はまずデータブロックと対応するパリティブロックを読み込み、 いくばくかの計算を行い、 パリティブロックとデータブロックを書き戻す必要がありますので、 ストライプ化プレックスに対する書き込みの 4 倍の転送回数となります。 一方、これはミラーリングのコストにより相殺されますので、 単一 RAID-5 プレックスのボリュームへの書き込みは、 2 個のストライプ化プレックスからなる正しく設定されたボリュームへの 書き込み速度の半分となります。 .It .Nm の設定が変わると (例えば、オブジェクトの追加や削除、またはオブジェクトの状態変更)、 .Nm は 128 kB までの更新された設定を各ドライブに書き込みます。 ドライブ数が増加すると、この時間が長くなります。 .El .Ss Vinum ボリューム上にファイルシステムを作成する .Nm ボリューム上にファイルシステムを作成する前に -.Nm disklabel +.Xr disklabel 8 を実行する必要はありません。 -.Nm newfs +.Xr newfs 8 だけを実行してください。 .Fl v オプションを使用して、 デバイスがパーティションに分割されないようにしてください。 例えば、ボリューム .Pa mirror 上にファイルシステムを作成するには、次のコマンドを入力します: -.Bd -literal -offset 4n -# newfs -v /dev/vinum/mirror -.Ed +.Pp +.Dl "# newfs -v /dev/vinum/mirror" .Pp .Nm の設定に関係する数個のその他のことがらがあります: .Bl -bullet .It 複数のドライブを単一ディスク上に作成しても、利益はありません。 各ドライブは 131.5 kB のデータをラベルと設定情報に使用し、 設定変更時に性能が劣化します。 適切な大きさのサブディスクを使用してください。 .It コンカチネート化 .Nm プレックスの大きさを増すことはできますが、 現在のところストライプ化プレックスと RAID-5 プレックスでは増せません。 現在のところ既存の UFS ファイルシステムの大きさを増すこともできません。 プレックスおよびファイルシステムを拡張可能とする計画はあります。 .El .Sh 状態管理 (STATE MANAGEMENT) Vinum オブジェクトは .Em state の概念を持ちます。 詳細は .Xr vinum 4 を参照して下さい。もしそれらの状態が .Em up なら、それらは完全にアクセス可能なだけです。 オブジェクトの状態を .Em up に変更するには -.Nm start +.Ic start コマンドを使います。オブジェクトの状態を .Em down に変更するには -.Nm stop +.Ic stop コマンドを使います。 通常、他の状態はオブジェクト間の関係によって自動的に作られます。 例えば、もしあなたがボリュームにプレックスを追加したら、プレックスの サブディスクは、ハードウェアがアクセス可能であるけれども、サブディスク上の データは不正であることを示す .Em empty 状態に設定されるでしょう。この状態の結果として、プレックスは .Em faulty 状態に設定されるでしょう。 -.Ss 'reviving' 状態 +.Ss `reviving' 状態 多くの場合、あなたがサブディスクを起動する時に、システムはサブディスクに データをコピーしなければなりません。 サブディスクの大きさによりますが、これは長い時間かかります。この間、 サブディスクは -.Em reviving +.Em reviving 状態に設定されます。コピー操作が正しく終了すれば、それは自動的に .Em up 状態に設定されます。 プロセスが、回復 (revive) を停止させ、そして再開させることがあります。 システムはサブディスクの回復の進み具合を保持し、そして -.Nm start +.Ic start コマンドが再発行された時、その時点からコピーを再開します。 .Pp ボリュームのプレックスが一つ以上が回復している間はボリュームの整合性を 保つために、 .Nm は書き込む場所まで回復させたサブディスクに書きます。もし読みとる領域が すでに回復しているならば、プレックスから読み出すことができます。 .Sh 分かりにくい仕様 (GOTCHAS) 次の事柄はバグではありませんし、存在する理由があるのですが、 混乱を引き起こすものです。 各項目は適切な節において議論されています。 .Bl -enum .It .Nm -ドライブは UNIX ディスクパーティションであり、パーティションタイプ -.Ar vinum +ドライブは +.Ux +ディスクパーティションであり、パーティションタイプ +.Em vinum であることが必要です。 これは、パーティションタイプが -.Ar 4.2BSD +.Em 4.2BSD であることを期待する -.Nm ccd +.Xr ccd 4 とは異なります。 -この ccd の動作は、自分の足元をすくうことになります: -.Nm ccd +この +.Nm ccd +の動作は、自分の足元をすくうことになります: +.Nm ccd では、用意にファイルシステムを上書きできてしまいます。 .Nm ではそのようなことは許しません。 .Pp 同様の理由で、 -.Nm vinum Ar start +.Nm Ic start コマンドは、パーティション -.Ar c +.Dq Li c 上のドライブを受け付けません。 パーティション -.Ar c +.Dq Li c は、ディスク全体を表現するためにシステムが使用し、タイプ -.Ar unused +.Em unused である必要があります。 ここには明確な矛盾があるので、 -.Ar c +.Dq Li c パーティションを使用しないことにより .Nm は問題を解決しています。 .It 複数のプレックスからなるボリューム作成時に、 .Nm はプレックスを自動的には初期化しません。 これは、内容については分からなくても、 これらの間には確かに一貫性がないということを意味しています。 その結果デフォルトでは、 新規作成されたプレックスのうち最初のものを除いたすべての状態を、 .Nm は -.Ar 誤り (faulty) -状態に設定します。 +.Em faulty +(誤り) 状態に設定します。 これらを最初のプレックスと同期させるには、 これらのサブディスクを -.Nm start +.Ic start させる必要があります。 -これにより、up 状態のプレックスから vinum にデータをコピーさせます。 +これにより、 +.Em up +状態のプレックスから +.Nm +にデータをコピーさせます。 関係するサブディスクの大きさに依存して、必要な時間は長くなり得ます。 .Pp 実際上は、プレックス作成時にその内容に多大な興味を持つ人はいないので、 他のボリュームマネージャはどんなときでも -.Ar 起動 (up) +.Ar up に設定して騙します。 .Nm は、新規作成されたプレックスが -.Ar 起動 (up) +.Em up 状態であることを保証するために、2 つの方法を提供します: .Bl -bullet .It プレックスを作成し、それらを -.Nm vinum Ar start +.Nm Ic start で同期します。 .It キーワード -.Ar setupstate +.Cm setupstate 付きでボリューム (プレックスではありません) を作成します。 このキーワードは、矛盾が存在しても無視してプレックスの状態を -.Ar 起動 (up) +.Em up 状態にするように、 .Nm に指示します。 .El .It 現在 .Nm がサポートしているコマンドには、実際には不要なものがあります。 私には理解できない理由があるのでしょうが、 -.Nm label +.Ic label および -.Nm resetconfig +.Ic resetconfig のコマンドを使おうとするユーザをしばしば見掛けます。特に -.Nm resetconfig +.Ic resetconfig は、あらゆる種類の恐しいメッセージを表示するにもかかわらずです。 正当な理由無しに、これらのコマンドを使わないでください。 .It 状態遷移には非常に分り難いものがあります。 事実、これがバグであるのか仕様であるのかは明かではありません。 -.Ar reborn +.Em reborn サブディスクなどの、奇妙な状態になったオブジェクトを起動できない場合には、 -.Nm stop +.Ic stop または -.Nm stop Ar -f +.Ic stop Fl f のコマンドを使用して、まず -.Ar stopped +.Em stopped 状態に遷移させてください。 これが上手くいけば、オブジェクトを起動できるはずです。 簡単な方法では上手くいかなくて、これが唯一の回復手段である場合、 その状況を報告してください。 .It カーネルモジュールを -.Ar -DVINUMDEBUG +.Fl D Ns Dv VINUMDEBUG オプション付きで構築した場合、 .Nm もまた -.Ar -DVINUMDEBUG +.Fl D Ns Dv VINUMDEBUG オプション付きで構築する必要があります。 なぜなら、両方のコンポーネントで使用されるデータオブジェクトに、 大きさが本オプションに依存しているものがあるからです。 前記のようにしないと、 -.Ar Invalid argument +.Sy Invalid argument というメッセージを表示してコマンドは失敗し、 次のようなコンソールメッセージが記録されます: +.Bl -diag +.It "vinumioctl: invalid ioctl from process 247 (vinum): c0e44642" +.El .Pp -.Bd -literal -vinumioctl: invalid ioctl from process 247 (vinum): c0e44642 -.Ed -.Pp -古いバージョンの kld やユーザランドプログラムを使うと、 +古いバージョンの KLD やユーザランドプログラムを使うと、 このエラーが発生することがあります。 .It -.Nm vinum Ar read +.Nm Ic read コマンドの文法は、吐き気を催すものです。 これが唯一の .Nm 起動のためのコマンドでしたが、今の好ましい方法は -.Nm vinum Ar start +.Nm Ic start です。 -.Nm vinum Ar read +.Nm Ic read は整備のみに使用すべきです。 文法が変更されたので、引き数が .Pa /dev/da0 のようなディスクスライスであり .Pa /dev/da0e のようなパーティションではないことに注意してください。 .El .\"XXX.Sh BUGS .Sh 関連ファイル -.Ar /dev/vinum -- +.Bl -tag -width /dev/vinum/control -compact +.It Pa /dev/vinum .Nm オブジェクトのデバイスノードがあるディレクトリ -.br -.Ar /dev/vinum/control -- +.It Pa /dev/vinum/control .Nm -の制御デバイスがあるディレクトリ -.br -.Ar /dev/vinum/plex -- +の制御デバイス +.It Pa /dev/vinum/plex .Nm プレックスのデバイスノードがあるディレクトリ -.br -.Ar /dev/vinum/sd -- +.It Pa /dev/vinum/sd .Nm サブディスクのデバイスノードがあるディレクトリ +.El .Sh 環境変数 .Bl -hang .It VINUM_HISTORY ログファイルの名前です。デフォルトでは /var/log/vinum_history です。 .It VINUM_DATEFORMAT ログファイル中の日付の書式です。デフォルトは %e %b %Y %H:%M:%S です。 .It EDITOR 設定ファイルの編集に使用するエディタの名前です。デフォルトは .Nm vi です。 .El .Sh 関連項目 .Xr strftime 3 , .Xr vinum 4 , .Xr disklabel 8 , -.Xr newfs 8 , +.Xr newfs 8 +.Pp .Pa http://www.vinumvm.org/vinum.html , -.Pa http://www.vinumvm.org/vinum-debugging.html . +.Pa http://www.vinumvm.org/vinum-debugging.html .Sh 作者 .An Greg Lehey Aq grog@lemis.com .Sh 歴史 .Nm コマンドは .Fx 3.0 から登場しました。 .Nm の RAID-5 コンポーネントは、 NetMAX 製品のために -Cybernet Inc. -.Pa www.cybernet.com +Cybernet Inc.\& +.Pq Pa www.cybernet.com が開発しました。