Category Archives: Network

最近升级服务器的一些笔记

最近新采购了一批硬件用于升级现有DevOps服务,相关的软件也都更新到较新的版本。本次升级比较顺利,没有遇到担心的兼容性问题,放一下配置供参考。

Storage Server

Intel Xeon E5-2603 v3
Supermicro X10SRL-F
Samsung ECC DDR4-2400 16GB x 4
Chelsio T520-CR
LSI SAS9217-8i
InnoDisk SSD 32GB
WD HUS726T6TALE6L4 6TB 7.2K SATA x12 (2 stripped raidz2)
Intel Optane 900p 280G PCI-E (as ZIL/SLOG)
Samsung 970 EVO PLUS 1TB M.2 (as L2ARC)
FreeNAS 11.2-U2

Virtualization Server

Intel Xeon E5-2699 v3 x 2
Supermicro X10DAi
Samsung ECC DDR4-2400 32GB x 8
Chelsio T520-CR
InnoDisk SSD 32GB
VMware ESXi 6.5 U2

Switch & Cables

UBNT ES-16-XG
10GTek SFP+DAC

Tips:

ESXi 6.5 U2 安装 Chelsio T520-CR 驱动
https://service.chelsio.com/beta/drivers/esx_2_0_0_32_uwire/Chelsio_UnifiedWire_ESXi_UserGuide.pdf

ZIL/SLOG
对于没有强制 SYNC WRITE 的场景,一点儿用处都没有。

MTU
9000 比 1500 性能好?未必!相反 9000 会带来额外的一些问题。

MPIO
iSCSI 实测可以跑满两根 10Gbps 。

Wake on LAN in Windows 10

最近新组装了一台小钢炮(Ryzen 2700x),打算利用 WOL 方便远程使用,没想到遇到一个小坑。
一开始,折腾了 BIOS 中所有能改的设置,不行;
后来安装了 Intel 的官方驱动,设置了还是不行:可以在睡眠状态(S4)下唤醒,但关机状态(S5)下无效。
后来在 ASUS Forum 看到类似的问题,其中提到可能是 Windows 10 的原因:

“Wake on LAN” (WOL) behavior in Windows 8, Windows 8.1 and Windows 10

The “Wake on LAN” (WOL) feature wakes a computer from a low-power state when a network adapter detects a WOL event. Typically, such an event is a specially constructed Ethernet packet. The default behavior in response to WOL events has changed from Windows 7 to Windows 8 and Windows 10.

Windows 7

In Windows 7, the default shutdown operation puts the system into the classic shutdown state (S5), and all devices are put into the lowest power state (D3). WOL from S5 is not officially supported in Windows 7. However, some network adapters can be left armed for waking if enough residual power is available. Therefore, waking from S5 is possible on some systems if enough residual power is supplied to the network adapter even though the system is in the S5 state and devices are in D3.

Windows 8, Windows 8.1 and Windows 10

In Windows 8, 8.1 and Windows 10, the default shutdown behavior puts the system into the hybrid shutdown state (S4), and all devices are put into D3. WOL from S4 or S5 is unsupported. Network adapters are explicitly not armed for WOL in either S5 or S4 cases because users expect zero power consumption and battery drain in the shutdown state. This behavior removes the possibility of invalid wake-ups when an explicit shutdown is requested. Therefore, WOL is supported only from sleep (S3) or hibernation (S4) states in Windows 8, 8.1 and Windows 10.

In Windows 8, 8.1 and Windows 10, hybrid shutdown (S4) stops user sessions but lets the contents of kernel sessions be written to the hard disk. This enables faster startups.

To disable the S4 state in Windows 8, 8.1 and Windows 10, follow these steps.

Note We do not recommend that you disable the hybrid shutdown (S4) state.

  1. In Control Panel, open the Power Options item.
  2. Click the Choose what the power buttons do link.
  3. Clear the Turn on fast startup (recommended) check box.
  4. Click Save Settings.

按照文中的说明,改了电源计划,果然 OK 了。

宽带升级到100M之后……

前两天电信客服来电说可以把家里的宽带免费升级到100M,在外面想用家里的设备测一下实际的上下行速度。家里 7×24 小时开机的设备有一台 Mikrotik RB751G-2HnD 和一台 Buffalo LS-WXL (重刷了 Debian Wheezy 7.9),那就看看SpeedTest有没有 Linux Console 版本的吧。

果然在GitHub 上找到一个:https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
# wget https://raw.github.com/sivel/speedtest-cli/master/speedtest_cli.py
# chmod +x speedtest_cli.py
# ./speedtest_cli.py

执行下,结果还不错
Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from China Telecom (121.231.9.15)...
Selecting best server based on latency...
Hosted by CHINA UNICOM JIANGSU COMPANY (Nanjing) [117.84 km]: 7.761 ms
Testing download speed........................................
Download: 93.06 Mbit/s
Testing upload speed..................................................
Upload: 4.23 Mbit/s

Retrieving speedtest.net configuration...
Retrieving speedtest.net server list...
Testing from China Telecom (49.89.188.61)...
Selecting best server based on latency...
Hosted by China Telecom JiangSu Branch (Nanjing) [198.70 km]: 11.072 ms
Testing download speed........................................
Download: 102.80 Mbit/s
Testing upload speed..................................................
Upload: 3.79 Mbit/s

再测一下 BT 下载速度,NAS 上用 transmission 下Fedora-24-Server 的镜像,速度完全只能达到3~4MB/s,dstat 一看,CPU 竟然满载……

再看一下 ROS 的 CPU Usage 竟然也达到 60~70%

看来是时候考虑新一波的设备升级计划了~~~

RouterOS的FastTrack与PCQ

新入一台Mikrotik CRS125-24G-1S-RM,划分了4个网段,并启用了端口隔离。

发现跨网段Bridging性能很低,Samba访问文件只有12MB/s左右的速度,远达不到官网标称的性能。

放狗找到官方论坛的一篇文章:http://forum.mikrotik.com/viewtopic.php?t=96302

从v6.29开始支持FastTrack,简单说就是启用后Firewall/NAT的性能直翻5倍!!!

测试了一把,Bridging的性能果然提升很多,Samba的速度大概有60MB+/s。

然而……鱼和熊掌不可兼得

原先的PCQ限速失效了:因为FastTrack会自动屏蔽Mangle其它规则,从而达到提升性能的目的。

ros_firewall_mangle

不差钱的还是上CCR系列,一劳永逸。

2016/05/22 更新:

经过几天鼓捣,发现FastTrack Connection规则可以不用在Filter表中添加,而是在Mangle表中独立添加。我的环境是加速LAN的跨网段访问速度,不经过NAT。

ros-fasttrack-pcq-update

注意:最上面3条动态规则在Filter表中取消FastTrack后自动失效,但是好像无法删除。

这样设定可以满足WAN上实现PCQ限速,内网三层交换速度不受影响。

DevOps环境搭建指南

维基百科上关于DevOps的定义:

DevOps(英文Development和Operations的组合)代表一种文化、运动或实践。旨在促进软件交付和基础设施变更软件开发人员(Dev)和IT运维技术人员(Ops)之间的合作和沟通。它的目的是构建一种文化和环境使构建,测试,发布软件更加快捷,频繁和可靠。

DevOps环境是由多种工具或者工具链组成,一般按交付过程包含以下部分:

  • 编码:代码编写、审查、持续集成
  • 构建:版本控制、代码合并、构建状态
  • 测试:自动化测试及测试报告
  • 打包:二进制仓库、Docker镜像仓库
  • 发布:变更管理、自动发布
  • 配置:基础设施配置和管理
  • 监视:性能监视、用户行为反馈

下面列举我在日常工作中用到的工具、环境,具体的安装、配置方法请参考官方手册或借助搜索引擎。

RouterOS

RouterOS(简称ROS)是一个基于Linux的软路由系统,我一般使用ROS的以下功能:

  • VLAN——可以区分公司内部的开发、测试、办公网络,保证研发环境网络的可用性
  • L2TP/IPSEC VPN——每个人都可以随时接入公司网络,方便在外调试
  • DNS——将公司内部的服务都通过域名进行访问,无需记忆IP地址
  • DHCP——配合PXE网络安装环境使用

VMware ESXi

虚拟化利器,不多介绍。机器加足内存就好。

FreeNAS

可靠的存储是其它服务的基础,我个人倾向于使用独立的SAN/NAS设备而不是服务器的本地存储。

主要原因有以下两点:

  • ESXi只支持高端的硬件RAID卡,成本高
  • 需要一开始就规划好每台机器的需求,没法共享

利用FreeNAS可以提供iSCSI Target给ESXi使用,同时可以给每个人都提供独立的Samba空间——通过Windows共享访问。

选择FreeNAS还有一个重要的原因就是ZFS。

OpenLDAP

OpenLDAP用来存放组织结构树及相应的权限,GitLab、MediaWiki、FreeNAS都支持基于LDAP的用户认证。

GitLab

GitLab提供了Git仓库、Code Review(通过Merger Request实现)、Issue Tracker等功能。

我认为GitLab相比传统的Git Server、Visual SVN等工具,最为实用的一点就是每个人都有自己空间的管理权限。

比如很多尚未立项的小项目或个人项目,需要版本控制但是又无必要托管在部门的仓库上,有了GitLab便可以在自己的一亩三分地上随便玩了。

GitLab-CI

GitLab配套的持续集成工具,一般用来编译、构建和运行自动化测试。

简单、够用,yml语法也很简单。

Docker Registry

Docker镜像仓库,从GitLab-CI打包好的包会直接Push进入registry。

MediaWiki

GitLab针对每个项目都有wiki功能,但是我们需要一个独立于项目的知识库,因此选择了MediaWiki。

PXE/Mirrors

由于我的工作都是基于Linux的,经常要安装不同的发行版本,在公司内部部署一台PXE安装服务是非常必要的。

PXE环境一般由DHCP、TFTP和HTTP这三个服务组合实现的,DHCP由ROS提供。

ShadowSocks

针对特殊国情而配备,租用一个海外VPS,然后部署ShadowSocks,再部署Privoxy,将socks5转换为http代理。