分类: 信息技术

  • NexentaStor 翘掉一例

    一时手贱,把下面这个参数由自己调好的1,跳到10,结果系统死机不断。

    判断应该是磁盘负载过重,导致 NexentaStor 并 ESXi 一起死掉。

    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.
  • New Public Beta: NexentaStor Community 4.0 milestone 23

    New Public Beta: NexentaStor Community 4.0 milestone 23

    NexentaStor 4.0 is now based on the illumos core, which brings along the latest stability and driver updates.

    Details: This release is intended for a clean install, upgrading from the 3.x series is not supported in this build.

    ISO Image Download: NexentaStor-Community-4.0.0-milestone_23.iso (737MB, md5: f87a860168cb1cb00a874370f1b9a595) Installation Guide: NexentaStor Installation Guide v4.0 Beta.pdf User Guide: NexentaStor User Guide v4.0 Beta.pdf

    (更多…)

  • NexentaStor NAS 家用环境置备(一):BT 客户端

    前言

    对于 7*24 运行的家用 NAS 来说,你肯定想装上可通过 Web 界面访问控制的 BT 客户端——通过动态域名服务的支持,种子在办公室或路上就可以扔到上面,苍老师在你回家之前就已躺好了……:D

    这一切在 Linux 的诸多发行版下很容易实现,比如 Debian 只需用 apt-get 就基本上搞定了所有事情。而如果你的 NAS 基于 Solaris,比如 NexentaStor,这也有现成的包,但缺失了一些基本的东西——软件包没给你创建服务进程专有的用户,以及没有按照 Solaris 的标准将“服务”给定义出来。

    为什么要选用 NexentaStor?NexentaStor 系出 Solaris,在商业化运作的基础上也提供 Community 版本的软件,对 OS 底层封装得非常不错,相比其他 BSD NAS 方案有着良好的用户使用体验!二则是 ZFS 的优良特性,使得其非常适合家庭持久数据的保存。

    >nexentastor4
    >NexentaStor ACL

    下文将解释如何在 NexentaStor 上安装 BT 客户端 Transmission(它也被很多 PT 支持),并将其配置为 svcadm 所能管控的系统服务。

    本文使用的 NexentaStor 为 4.0.0 Beta M20,你可以到 NexentaStor Community Beta 网站上关注其更新。

    系统准备

    NexentaStor 使用了 Debian 的软件包管理机制,支持 apt 方式安装和更新软件包。作为一个尚处于 Beta 阶段的专有 OS,官方并未给 NexentaStor 4.0.0 Beta M20 提供可用的 apt deb source,但由于其核心与 Dilos 一样基于 illumos,且都使用 apt,所以我们把下面这几个源加到 /etc/apt/sources.list 当中应当是可行的: deb http://apt.dilos.org/dilos dilos-unstable main contrib non-free deb http://apt.dilos.org/dilos dilos-testing main contrib non-free

    对了,对于 NexentaStor 来说,默认的 Shell 并不是常见的 Bash,而是其封装好的 nmc,你得进到 Bash 才能编辑上述的 sources.list。这你得动点手脚,具体可以点击这里

    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)

    按”y”之后,熟悉的bash#就回来了!

    root@nas:/volumes#

    接下来是导入 dilos 的公钥以验证该 source 的签名,参见“apt-get update 的 NO_PUBKEY 问题解决”:

    root@nas:~# gpg --keyserver subkeys.pgp.net --recv-keys 74DA7924C5513486
    root@nas:~# gpg --export 74DA7924C5513486 | apt-key add -
    

    更新系统:

    root@nas:~# apt-get update
    root@nas:~# apt-get install curl
    root@nas:~# apt-get install unzip

    但是,切记除了安装你需要的软件包,不推荐你运行 apt-get upgrade 或者 apt-get dist-upgrade 来更新系统。

    基本安装

    同样,我们通过 apt-get install transmission 来完成 Transmission 基本软件包的安装。

    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 版本,2.73,不是最新也尚可:

    root@nas:~# transmission-cli --version
    transmission-cli 2.73 (13592)

    创建一个新用户 torrentd,用于替换 root 来运行 Transmission 服务进程。

    root@nas:~# mkdir -p /export/home/torrentd
    root@nas:~# cd /export/home/
    root@nas:/export/home# useradd -d /export/home/torrentd -s /bin/false torrentd
    root@nas:/export/home# chown torrentd:other torrentd/
    root@nas:/export/home# ls -la
    total 6
    drwxr-xr-x 4 root     root  4 Feb  8 00:24 .
    drwxr-xr-x 3 root     sys   3 Feb  8  2013 ..
    drwxr-xr-x 2 admin    staff 6 Feb  8  2013 admin
    drwxr-xr-x 2 torrentd other 2 Feb  8 00:24 torrentd

    你可以同时创建 BT 使用的存储目录。NexentaStor 下无疑你希望用上自己的 ZFS 池。

    root@nas:~# mkdir -p /volumes/main/stuff/btdownloads
    root@nas:~# chown -R torrentd:other /volumes/main/stuff/btdownloads

    配置

    这些基本步骤过后,我们还需要配置 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)

    现在进程已经起来,配置文件也已经生成,按 CTRL-C 把 transmission-daemon 进程杀掉。你可以看到一些文件已经生成出来:

    root@nas:~# cd /var/transmission/
    root@nas:/var/transmission# ls -la
    total 11
    drwxr-xr-x  5 root root    6 Feb  8 00:37 ./
    drwxr-xr-x 41 root sys    41 Feb  8 00:34 ../
    drwxr-xr-x  2 root root    2 Feb  8 00:35 blocklists/
    drwxr-xr-x  2 root root    2 Feb  8 00:35 resume/
    -rw-------  1 root root 2147 Feb  8 00:37 settings.json
    drwxr-xr-x  2 root root    2 Feb  8 00:35 torrents/

    最重要的文件是 settings.json ,我们需要在其中设置下载目录(download-directory)以及对本地局域网设置白名单(whitelist) (我这里是 192.168.168.*)。

    关于设置文件的一个注意事项:你可以任意编辑此文件,但如果你编辑 settings.json 时 transmission-daemon 处于运行状态,那么服务进程停止时设置文件将被覆写。所以要停掉 transmission-daemon 之后再编辑 settings.json。

    "download-dir": "/volumes/main/stuff/btdownloads",
    ...
    "rpc-authentication-required": false,
    "rpc-bind-address": "0.0.0.0",
    "rpc-enabled": true,
    "rpc-password": "------------",
    "rpc-port": 9091,
    "rpc-username": "",
    "rpc-whitelist": "127.0.0.1,192.168.168.*",
    "rpc-whitelist-enabled": true,

    Web GUI 的默认端口为 9091,这可以通过编辑 rpc-port 值来变更。

    设置文件的更多信息在这里找: https://trac.transmissionbt.com/wiki/EditConfigFiles

    然后更变配置文件夹的属主。

    root@nas:/var/transmission# chown -R torrentd:other /var/transmission

    Transmission 配置为系统服务

    最后一步是将 Transmission 集成到系统的 Service Management Facility (smf) 当中。这需要一个描述了 Transmission 服务的 XML 配置文件。

    基本的 XML 配置文件在 4amlunch.net 可以找到。但因为该配置文件中需要设置一些特定的目录,所以此处编辑了这个文件以适合本文中的叙述。新文件可以在这里找到: transmission.zip

    假设传送至 /tmp 目录。

    root@nas:/tmp# unzip transmission.zip
    Archive:  transmission.zip
      inflating: transmission-daemon
      inflating: transmission-daemon.xml
    
    root@nas:/tmp# mv transmission-daemon /lib/svc/method/
    root@nas:/tmp# chmod +x /lib/svc/method/transmission-daemon
    root@nas:/tmp# chown root:bin /lib/svc/method/transmission-daemon
    root@nas:/tmp# svccfg import -V transmission-daemon.xml

    现在,我们已经将 transmission-daemon 安装成为了 NexentaStor 的一个服务,它可以使用 svcadm 命令来启动及停止,并使用 svcs 来检查其运行状态。

    相关命令: svcadm enable transmission-daemon svcadm disable transmission-daemon

    以下步骤将启用 Transmission 服务,并检查其状态。

    root@nas:/tmp# svcadm enable transmission-daemon
    root@nas:/tmp# svcs -x transmission-daemon
    svc:/application/transmission-daemon:default (Transmission BitTorrent Client (Daemon))
     State: online since February  8, 2013 01:33:33 AM PST
       See: transmission-daemon(1)
       See: http://www.transmissionbt.org
       See: /var/svc/log/application-transmission-daemon:default.log
    Impact: None.

    这样就可以了,服务已启动并运行,现在我们可以在端口 9091 访问 Transmission 的 WebGUI: http://YourServerAddress:9091/

    >transmission-web-ui

    如果希望使用 uTorrent 风格的客户端,那推荐你使用 RPC 客户端来访问 Transmission 守护进程,比如 Transmission Remote GUI,比 Web GUI 更方便强大: https://code.google.com/p/transmisson-remote-gui/

  • 关于最近在沈阳找外包的”Bob”同学

    窃以为,应解职的是该公司的全体HR,而Bob同学则应晋升为外包项目管理人员。

    美国一家基础设施公司的安全审计发现,该公司的一位顶尖程序员将自己的工作外包给中国沈阳的一家软件公司。该公司为雇员提供了VPN允许他们在家里工作。

    内部的安全审计发现,公司明星程序员Bob的VPN登陆日志显示他固定的从中国沈阳访问公司主服务器,他们找来电信设备供应商Verizon帮助调查。调查排除了恶意程序或黑客入侵的可能性。

    Verizon调查人员发现,Bob雇用了沈阳的一家软件咨询公司去做他的日常编程工作,通过FedEx提供了他的双步认证令牌,将六位数薪水的五分之一支付给外包公司,自己则去上网冲浪,比如在Reddit上逛几小时,然后去吃饭,再上ebay血拼,更新Facebook 和LinkedIn,最后给经理发送每日工作邮件,上床睡觉。

    他的计划一直行之有效,在公司人力资源眼里他是最高效的程序员之一,被认为是C、C++、Perl、Java、Ruby、PHP和Python方面的专家。目前Bob已被解雇。

  • 参数实证,Surface Pro 是傻黑粗

    Surface Pro 傻黑粗参数实证:对比 MacBook Air 11英寸。Air重1.08千克,Pro含键盘则重1.16千克。售价上,Air约6165元,Pro含键盘则高达约6397元。

    而Air要不算CPU升级的话,设计上已经是2011年7月的产品。MS和一个一年半前的设计比,也就单个屏幕取胜。

    2011/07/20 Mac OS X Lion 今天在 Mac App Store 上线 Apple 推出配备新一代处理器、Thunderbolt I/O 技术和背光键盘的全新 MacBook Air Apple 更新 Mac mini

    2012/06/11 Apple 推出配备 Retina 显示屏的全新 MacBook Pro Apple 使用新一代处理器和全新图形处理器升级 MacBook Air 和当前一代 MacBook Pro

    Apple MacBook Air 与 MS Surface Pro 参数对比
  • apt-get update 的 NO_PUBKEY 问题解决

    apt-get update 更新时提示

    W: GPG error: http://apt.dilos.org dilos-testing InRelease: The following signatures couldn't be verified because the public key is not available: NO_PUBKEY 74DA7924C5513486

    此类问题是系统中不存在源服务器的公钥,http://apt.dilos.org 的签名无法验证。 解决办法:

    gpg --keyserver subkeys.pgp.net --recv-keys 74DA7924C5513486 gpg --export 74DA7924C5513486 | apt-key add -

    使用 apt 的系统均可参照此解决。

  • Some tips

    China Telecom Hangzhou LAN#4 telnet> get port config portid 4 VLAN ID: 1341 802.1p: 0

  • NexentaStor Community 4.0 milestone 20

    下载地址: http://nexentastor.org/boards/13/topics/8785

    感兴趣的更新之一,是增加了对VMware万兆网卡VMXNet3的支持。