Sys_zfs_vdev_max_pending
该系统配置变量控制设备 I/O 队列大小 (I/O 并发性)。
This system configuration variable controls device I/O queue size (I/O concurrency).
对于 SATA 磁盘,建议值为 ‘1’。
对于所有其他磁盘种类,请保持系统默认。
For SATA disks, the recommended value is ‘1’.
For all other disk types, please keep the system default.
请注意,调整此参数可能会影响 I/O 延迟,也许会以原始流吞吐量为代价。
Note that tuning this parameter may affect I/O latency, possibly at the expense of raw streaming throughput.
更多信息,参见 http://en.wikipedia.org/wiki/Native_Command_Queuing.
对于 7*24 运行的家用 NAS 来说,你肯定想装上可通过 Web 界面访问控制的 BT 客户端——通过动态域名服务的支持,种子在办公室或路上就可以扔到上面,苍老师在你回家之前就已躺好了……:D
这一切在 Linux 的诸多发行版下很容易实现,比如 Debian 只需用 apt-get 就基本上搞定了所有事情。而如果你的 NAS 基于 Solaris,比如 NexentaStor,这也有现成的包,但缺失了一些基本的东西——软件包没给你创建服务进程专有的用户,以及没有按照 Solaris 的标准将“服务”给定义出来。
为什么要选用 NexentaStor?NexentaStor 系出 Solaris,在商业化运作的基础上也提供 Community 版本的软件,对 OS 底层封装得非常不错,相比其他 BSD NAS 方案有着良好的用户使用体验!二则是 ZFS 的优良特性,使得其非常适合家庭持久数据的保存。
nmc@nas:/$ option expert_mode = 1
nmc@nas:/$ !bash
You are about to enter the Unix ("raw") shell and execute low-level Unix command(s). Warning: using low-level Unix commands is not recommended! Execute? (y/n)
root@nas:~# apt-get install transmission
Reading package lists... Done
Building dependency tree
Reading state information... Done
Note, selecting 'network-transmission' instead of 'transmission'
The following extra packages will be installed:
library-libevent
The following NEW packages will be installed:
library-libevent network-transmission
0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
Need to get 30.9 MB of archives.
After this operation, 108 MB of additional disk space will be used.
Do you want to continue [Y/n]? Y
Get:1 http://apt.dilos.org/dilos/ dilos-unstable/main library-libevent solaris-i386 1.2.10.1 [628 kB]
Get:2 http://apt.dilos.org/dilos/ dilos-unstable/main network-transmission solaris-i386 1.2.10.2 [30.3 MB]
Fetched 30.9 MB in 1min 7s (460 kB/s)
Selecting previously unselected package library-libevent.
(Reading database ... 62440 files and directories currently installed.)
Unpacking library-libevent (from .../library-libevent_1.2.10.1_solaris-i386.deb) ...
Selecting previously unselected package network-transmission.
Unpacking network-transmission (from .../network-transmission_1.2.10.2_solaris-i386.deb) ...
Setting up library-libevent (1.2.10.1) ...
Setting up network-transmission (1.2.10.2) ...
这些基本步骤过后,我们还需要配置 Transmission,而创建配置文件最方便容易的方式莫过于运行 transmission-daemon,它会为我们创建一个母本。通常情况下,这些配置文件将在当前登录的用户主目录中生成,在多用户环境中这是 OK 的,但在这里的场景下我们把它们放在 /var/transmission 目录中。
root@nas:~# mkdir /var/transmission/
root@nas:~# transmission-daemon --config-dir /var/transmission -f
[00:35:04.262] Transmission 2.73 (13592) started (session.c:720)
[00:35:04.263] RPC Server Adding address to whitelist: 127.0.0.1 (rpc-server.c:803)
[00:35:04.263] RPC Server Serving RPC and Web requests on port 127.0.0.1:9091/transmission/ (rpc-server.c:997)
[00:35:04.263] RPC Server Whitelist enabled (rpc-server.c:1001)
[00:35:04.263] UDP Failed to set receive buffer: No buffer space available (tr-udp.c:58)
[00:35:04.263] UDP Failed to set receive buffer: requested 4194304, got 57344 (tr-udp.c:77)
[00:35:04.263] DHT Generating new id (tr-dht.c:309)
[00:35:04.263] Using settings from "/var/transmission" (daemon.c:517)
[00:35:04.263] Saved "/var/transmission/settings.json" (bencode.c:1731)
[00:35:04.263] Port Forwarding (NAT-PMP) initnatpmp succeeded (0) (natpmp.c:72)
[00:35:04.263] Port Forwarding (NAT-PMP) sendpublicaddressrequest succeeded (2) (natpmp.c:72)
[00:35:12.337] Port Forwarding Port Forwarding (port-forwarding.c:93)
[00:35:12.337] Port Forwarding Port Forwarding (port-forwarding.c:93)
[00:35:37.568] DHT Attempting bootstrap from dht.transmissionbt.com (tr-dht.c:247)
W: GPG error: <a href="http://apt.dilos.org">http://apt.dilos.org</a> dilos-testing InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 74DA7924C5513486