Freeshell 修复 NAT 支持

已经改正了这项配置,支持 netfilter 的完整功能,但需要重启您的 freeshell 才能生效。抱歉此问题给您带来的不便。

Freeshell 升级物理机中的 vzctl 工具之后,新的 vzctl 工具默认 netfilter(iptables 的内核支持)只支持 filter 和 mangle 表,不支持 conntrack 功能和 NAT 表。如果您的 freeshell 是新建的,或者在 vzctl 工具升级之后重启过,则无法使用 conntrack 和 NAT。

重启 freeshell 后,您可以用下面的命令检查 nat 表的可用性。请注意,ip6tables(IPv6)暂不支持 nat。

# cat /proc/net/ip_tables_names
nat
mangle
filter

感谢 张雪松 的 bug 报告。

今日 15 时至 17 时 Mirrors 宕机

今天(2014年8月3日)下午3点左右,我(cuihao)对 Mirrors 服务器上的 LXC 虚拟机执行了关机操作(lxc-shutdown)。由于虚拟机没有配置网卡隔离,该操作导致 mirrors 网络被切断。此次事故和去年年底的一次宕机事故非常相似。

事故发生后,我立即联系了 James Zhang 老师,并前往网络中心机房着手修复。断网导致 iSCSI 阵列出现大量 IO 错误。当时登录很慢且 sudo 后终端卡住,我错误地认为这是由于IO问题导致系统卡死(事后想到应该是LDAP无法链接导致的),并重启了系统。

重启导致了新的问题——系统引导失败。后来在 @zsj 同学的协助下,才通过U盘中的引导器进入了系统(但主机的引导仍未修复),mirrors 恢复服务。恢复服务后,发现 mirrors 的路由配置以及 udev 规则存在一些问题,有待日后解决。

Mirrors 从 15 时左右停止服务,到 17 时左右恢复服务,宕机时间约2小时。

近期 Mirrors 多次宕机,严重影响了服务质量,LUG 维护人员对此深表歉意。


为了避免 Mirrors 服务器故障给用户带来困扰,我们在 DNSPod 上设置了故障时DNS自动切换。检测到故障时,Mirrors 的域名解析会被切换到另一台服务器,该服务器会将用户的 HTTP 访问重定向到其他镜像站。

Mirrors 在线维护工作基本完成

按照邮件列表中的讨论,大约从7月下旬开始,mirrors 管理人员开始对服务器进行在线维护。其最终目的是消除目前 mirrors 上的磁盘性能瓶颈。具体工作分为以下几个部分:

一、更换 I/O 调度器

经过研究与讨论,我们最终决定使用 Deadline 调度器,以尽可能地降低 I/O 延迟。具体操作只需要向 Linux 下的 sysfs 文件系统中写入即可。

二、清理 LVM,合并虚拟磁盘

由于一些历史原因,mirrors 在同一块磁盘阵列卡上有许多分立的虚拟磁盘,各虚拟磁盘上又分别建立了 LVM。此次维护将弃用 LVM,并将分立的虚拟磁盘合并。

为此我们迁移了约 6TB 的数据到外部磁盘阵列上,以保证服务并不间断。使用 LSI 官方推荐的 MegaCLI 命令行工具在线操作磁盘阵列卡,建立新的虚拟磁盘。新的虚拟磁盘采用 RAID5,平衡稳定性与可靠性。

三、优化文件系统

在新的虚拟硬盘上,我们使用 ext4 文件系统。在创建过程中使用 stride 与 stripe-width 选项针对 RAID 优化文件系统,使文件系统中的块与 RAID 中的条带对齐。

文件系统使用 noatime,nosuid,data=writeback,barrier=0,errors=remount-ro,noquota 选项挂载,主要是使用回写优化写操作性能,并关闭同步屏障以进一步提高性能。

四、成果

如图,在移动镜像时:

外部磁盘阵列吞吐量

可见,外部磁盘阵列的访问速度的瓶颈转移到了连接外部磁盘阵列与本机的千兆以太网上。

当镜像已基本回迁完成时:

外部磁盘阵列吞吐量
外部磁盘阵列延迟

可见新组建的磁盘阵列性能不错,延迟极低。

可用之前博文中的方式“攻击” mirrors 服务器,服务器负载并不会有明显变化。

Mirrors 镜像整理通知

科大开源镜像站以收录镜像源全面闻名,但众多镜像也造成服务器端文件管理的混乱,管理人员在检查后发现了不少问题。对于用户而言,主要的问题有:

  • 部分镜像的 rsync 配置有误,用户无法访问;
  • 一些镜像长期未更新却仍在提供服务;
  • 与上游缺乏联系,没有被官方收录。

为了减轻维护负担、提高服务质量,mirrors 管理人员从明天起将对服务器进行在线维护,整理服务器端文件。

文件整理期间,大部分镜像不会受到任何影响(见文后列表),其访问方式、地址不会变更。对于不在列表中的镜像,我们可能酌情做出一些调整,这些调整包括:移动镜像位置、重新同步镜像、删除镜像等等。

如果给您带来了不便,敬请谅解。


 

不会受到影响的镜像列表(括号内为相应镜像的 HTTP 目录名):

(各大发行版官方软件仓库或安装介质镜像)

  • Anthon(anthon)
  • Archlinux(archlinux)
  • Archlinux ARM(archlinuxarm)
  • CentOS(centos)
  • Chakra(chakra)
  • Debian(debian、debian-backports、debian-cd、debian-security、debian-volatile)
  • Deepin(deepin、deepin-cd)
  • Fedora(fedora、epel、rpmfusion)
  • FreeBSD(freebsd)
  • Gentoo(gentoo、gentoo-portage)
  • Kali(kali、kali-images、kali-security)
  • Knoppix(knoppix、knoppix-dvd)
  • Linux Mint(linuxmint、linuxmint-cd)
  • Mageia(mageia)
  • Manjaro(manjaro)
  • OpenSUSE(opensuse)
  • Raspbian(raspbian)
  • Scientific Linux(scientificlinux)
  • Slackware(slackware)
  • StartOS(startos)
  • Turnkey Linux(turnkeylinux)
  • Ubuntu(ubuntu、ubuntu-old-releases、ubuntu-releases)

(第三方软件仓库)

  • Archlinux 中文社区软件仓库(archlinuxcn)
  • Debian Mutimedia(debian-multimedia)
  • Dotdeb(dotdeb)
  • Embedded Debian(emdebian)
  • 龙芯社区相关镜像(bjlx、loongson、loongson2f)

(重要的应用软件/开发库的镜像)

  • CPAN(CPAN)
  • CRAN(CRAN)
  • CTAN(CTAN)
  • Cygwin(cygwin、cygwin-port)
  • Eclipse IDE(eclipse)
  • Gnome(gnome)
  • GNU 计划(gnu)
  • KDE 及其组件(kde、kde-application)
  • Linux 内核官网(kernel.org)
  • OpenVZ(openvz)
  • Qt 开发库(qtproject)
  • Sage(sagemath)
  • VideoLAN(VideoLAN)