From nobody Fri Aug 12 11:14:35 2022 X-Original-To: freebsd-users-jp@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4M41KX3qMgz4YhCf for ; Fri, 12 Aug 2022 11:14:40 +0000 (UTC) (envelope-from freebsdusersjp@t11i.jp) Received: from www5350.sakura.ne.jp (www5350.sakura.ne.jp [133.167.212.60]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (Client did not present a certificate) by mx1.freebsd.org (Postfix) with ESMTPS id 4M41KV2XVcz3L49 for ; Fri, 12 Aug 2022 11:14:38 +0000 (UTC) (envelope-from freebsdusersjp@t11i.jp) Received: from [192.168.1.226] (47.136.178.217.shared.user.transix.jp [217.178.136.47]) (authenticated bits=0) by www5350.sakura.ne.jp (8.16.1/8.16.1) with ESMTPSA id 27CBES8k023331 (version=TLSv1.2 cipher=ECDHE-RSA-AES256-GCM-SHA384 bits=256 verify=NO); Fri, 12 Aug 2022 20:14:28 +0900 (JST) (envelope-from freebsdusersjp@t11i.jp) Message-ID: Date: Fri, 12 Aug 2022 20:14:35 +0900 List-Id: Discussion relevant to FreeBSD communities in Japan List-Archive: https://lists.freebsd.org/archives/freebsd-users-jp List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-freebsd-users-jp@freebsd.org X-BeenThere: freebsd-users-jp@freebsd.org MIME-Version: 1.0 User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:91.0) Gecko/20100101 Thunderbird/91.12.0 Subject: =?UTF-8?B?UmU6IOi1t+WLleaZguOBq+eJueWumuOBruODh+ODkOOCpOOCueOBjA==?= =?UTF-8?B?6KqN6K2Y44GV44KM44KL44G+44GnenBvb2zjga5pbXBvcnTjgpLlvoXjgaTmlrk=?= =?UTF-8?B?5rOV?= References: <3ed6f837-258e-86a4-eb0d-34d2d453e49a@t11i.jp> <20220809.055920.888534649866018568.hrs@FreeBSD.org> To: freebsd-users-jp@freebsd.org From: freebsdusersjp@t11i.jp In-Reply-To: <20220809.055920.888534649866018568.hrs@FreeBSD.org> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Rspamd-Queue-Id: 4M41KV2XVcz3L49 X-Spamd-Bar: --- Authentication-Results: mx1.freebsd.org; dkim=none; dmarc=none; spf=pass (mx1.freebsd.org: domain of freebsdusersjp@t11i.jp designates 133.167.212.60 as permitted sender) smtp.mailfrom=freebsdusersjp@t11i.jp X-Spamd-Result: default: False [-3.30 / 15.00]; NEURAL_HAM_MEDIUM(-1.00)[-1.000]; NEURAL_HAM_SHORT(-1.00)[-1.000]; NEURAL_HAM_LONG(-1.00)[-0.999]; R_SPF_ALLOW(-0.20)[+a:www5350.sakura.ne.jp]; MIME_GOOD(-0.10)[text/plain]; FROM_NO_DN(0.00)[]; MLMMJ_DEST(0.00)[freebsd-users-jp@freebsd.org]; FROM_EQ_ENVFROM(0.00)[]; ASN(0.00)[asn:9371, ipnet:133.167.0.0/16, country:JP]; MIME_TRACE(0.00)[0:+]; R_DKIM_NA(0.00)[]; RCVD_VIA_SMTP_AUTH(0.00)[]; RCPT_COUNT_ONE(0.00)[1]; MID_RHS_MATCH_FROM(0.00)[]; ARC_NA(0.00)[]; RCVD_COUNT_TWO(0.00)[2]; TO_MATCH_ENVRCPT_ALL(0.00)[]; DMARC_NA(0.00)[t11i.jp]; TO_DN_NONE(0.00)[]; RCVD_TLS_ALL(0.00)[] X-ThisMailContainsUnwantedMimeParts: N 戸川です。 青木さん、佐藤さん、ありがとうございます。 コンピュータとHDDは以下のような環境でした。 ・富士通 PRIMERGY TX1310 M3 ・Seagate ST12000VN0008 佐藤さん: > kern.cam.boot_delay="5000" > kern.cam.scsi_delay="5000" /dev/ada3が認識されるまでだいたい10秒ぐらいだったので、 kern.cam.boot_delay="10000" とか kern.cam.scsi_delay="15000" とかやってみましたが、状況は変わりませんでした。 (/dev/ada? が認識される遙か前に、/etc/rc.d/zpool が 実行されているような状況は変わりませんでした) 青木さん: > テストしてはいませんが思いつくのは、ダミーのスクリプトを > /etc/rc.d/以下に置くことでしょうか。 > 具体的な書き方の例は`man rc`で見て頂くのと/etc/rc.d/に既にある > スクリプトを見て頂くとして、 >  # BEFORE: zpool > を含むのがポイントで、実処理としては必要なデバイスが生えて > いなければループして生えたら脱出、という処理ができる必要が > あるでしょう。 このアドバイスを元に、rcとかrcorderとかの使い方を調べまして、 以下のような対処をしています。 ありがとうございます。 ---- 以下のスクリプトを /etc/rc.d/zpool_before として作成しました。 ---- #!/bin/sh # PROVIDE: disks # KEYWORD: nojail . /etc/rc.subr name="zpool_disks" desc="Wait disk for ZPOOLs" rcvar="zfs_enable" start_cmd="zpool_disk_start" zpool_disk_start() { if [ "${zpool_waiting_device}" ] ; then dev=${zpool_waiting_device} echo "Find ${dev}" i=0 while [ $i -lt 15 ] ; do if [ -e ${dev} ] ; then break fi echo "Could not find device ${dev}. Wait 1sec." sleep 1 i=`expr $i + 1` done fi } load_rc_config $name run_rc_command "$1" ---- # PROVIDE: disks とすることで、/etc/rc.d/zpool より前にこのスクリプトを実行させています。 (/etc/rc.d/zpool は # REQUIRE: disks なので) また、ZFSのファイルシステムは/etc/rc.d/zfsでmountされますが、 このスクリプトは/etc/rc.d/FILESYSTEMSの中でREQUIREされておらず、 このままではFILESYSTEMSがprovideされたときに /usrや/varがmountされている保証がないので、 /etc/fstab に/usrや/varのエントリを入れて、 /etc/rc.d/mountcritlocal の中でmountされることを保証するようにしました。 重ねまして、お二方、ありがとうございました。 On 2022/08/09 5:59, Hiroki Sato wrote: > 佐藤です。 > > freebsdusersjp@t11i.jp wrote > in <3ed6f837-258e-86a4-eb0d-34d2d453e49a@t11i.jp>: > > fr> 13.1-RELEASEにおいて、起動時に特定のディスクデバイスが認識されるまで > fr> zpoolのimportを待つ方法を探しています。 > ... > fr> 試しにこのスクリプトを編集し、/dev/ada3 が認識されるまで > fr> sleepするようにしたところ、zpoolのimportに成功しました。 > > /boot/loader.conf に > > kern.cam.boot_delay="5000" > > を書くと変わったりするでしょうか。 > これを設定すると、起動中にブロックデバイスを認識する段階で、 > 設定された数字だけ余計に待つようになります。単位は ms で、デフォルトは 0 です。 > > また、SCSI バスリセットから機器が応答するまでの待ち時間は > 別の設定になっていて、次の変数が対応します。 > こちらも単位は同じで、デフォルトは 5000 です。 > > kern.cam.scsi_delay="5000" > > 認識に時間がかかる機器がある場合は、この 2 つを調整することが多いです。 > > -- Hiroki