什么是职场歧视?从中国一则招聘信息说起

Image caption 中国企业美团的一员工发招聘要求称”不要研究生博士生,不要黄泛区及东北人士”等

中国企业美团内部带有歧视性的招聘条件流传网络,引发中国网民热烈讨论。两天后,美团开除发布该招聘员工。

美团是中国大陆地区第一个精品团购形式类的电子优惠券购买商务网站,市值估值达到70亿美元。

5月17日,美团内部一名叫田源的员工在美团内部聊天群里发送了招聘一名产品运营的要求:

  • 不要简历丑的
  • 不要研究生博士生
  • 不要开大众的
  • 不要信中医的
  • 不要黄泛区及东北人士

事件讨论

一些中国网民认为”五不要”里的不要研究生、博士生是对持不同学历人的偏见。黄泛区及东北人士是对东北和一些中原(河南东部、安徽北部及江苏北部的44个县级城市)人歧视。

至于开大众、信中医,《新京报》评论说:”业务能力跟信不信中医没什么关系,马云也信中医,来了一个这样的小伙子,你招不招?”

“你不可以说开大众的都很二,难道你不知道保时捷、宾利、兰博基尼等豪车都是大众旗下的品牌?”

南方报业的南方网更是发文《美团歧视性招聘”五不要”,莫非要上天?》斥责美团。

对美团的不满在网络蔓延开来,最终美团集团称田源使用地域歧视、爱好歧视不当言论有悖公司价值观,将田源开除。

而后,名为”科学尚未普及”的微博称自己是美团事件的田源本人,解释说自己不是歧视,”之所以有Pass选项,是为了更精确地互相筛选”。

“你之所以认为是歧视是因为你认为被歧视,如果我说’不招日本人’,那我是不是种族歧视?所以说只有带有地域歧视观点的人才会认为别人是在地域歧视。”

当事人对这一歧视事件的总结是”为了平息愤怒而开除一个员工,总结来看就像是美团” 向网民 “低头”。当事人也骂网民是傻X。

职场歧视到底有多可怕

图片版权 Thinkstock
Image caption 中国职场女性被歧视几率高

美团的事件透露出求职人担心的“学历歧视”、”地域歧视”等真的存在于某些用人单位的招聘中。

就”地域歧视”而言,《大学生就业地域歧视分析与相关反思》和《当代中国大学生就业的经济学研究》曾指出,中国的城乡二元化、户口问题等导致不少企业因为不愿意增加社会保障费用等支出、更愿意招收本地人和城镇人口。

最可怕的是美团歧视事件的主人公田源,在发表不当言论后依然认为这不是歧视。这是否影射出地域、学历等歧视意识已经深深存在于一部分中国职场人的思想中?如果是这样,中国职场的歧视令人担忧。

中国更严重的歧视是性别歧视。《中国新闻网》今年3月报道说中国”HR原则上不招已经生育了一个孩子的女性”。一名HR解释说:”因为这样的女性有可能会再生一个小孩,而有两小孩的妈妈被认为’没有精力工作’。”

根据《纽约时报》查阅的企业记录显示,在中国的300强公司中,女性董事不足10%,远远低于欧洲大陆的18%。

《中国新闻网》的调查显示很多中国女性在受到恶意歧视后被迫辞职。辞职后,向公司讨要说法的女性寥寥无几。

歧视本身已经很不公平,也是对不同人群的不尊重。除去对个人造成的心理压力和事业发展的阻碍不谈,如果连受歧视人群都默认歧视,甚至甘愿为歧视买单,那么整个社会将难以向公平的方向发展。

全球职场歧视

图片版权 Terence King
Image caption 泰瑞司·金在新加坡找工作时因为长得不像中国人而未被录用

其实全球职场都存在不同程度、不同种类的歧视。

美国

美国西雅图现任市长爱德华·穆雷的前发言人罗斯林德·巴西就曾为种族歧视打官司。

罗斯林德因为错误发布消息,如把一位并没有去世的前任官员当成死亡的另一名官员,而被解雇。而后,她称自己因为是黑人而受到了不公正待遇,并与西雅图政府打官司。

昨天(27日),西雅图政府同意支付罗斯林德12万5千美元的补偿金,并提供她一份新的工作。

新加坡

泰瑞司·金(Terence King)的父母在他出生时给了他中文名Wang Lai Ming。但是他说他在新加坡找工作时,很多企业因为他长得不像中国人而拒绝录用他。

英国

BBC的测试发现,在英国,申请者技能相同的情况下,如果你叫 “Adam” (常用英文名)那么你被雇佣的几率 比你叫 “Mohamed” (常用穆斯林名)大的多。

http://www.bbc.com/zhongwen/simp/comments-on-china-40078351

proxmox 集群管理工具

请阅读此文用户务必阅读以下链接,其中包含了汉化作者、张自然copy过来的原因等信息。

www.zhangziran.com/proxmox-docs-zh-cn.htm 
a

Proxmox VE 集群简介

Proxmox VE 集群管理工具 pvecm 用于创建一个由多个物理服务器节点构成的“组”。
这样的一组服务器称为一个“集群”。我们使用 Corosync Cluster Engine 来确保集群通信的稳定可靠,目前一个集群最多可拥有 32 个物理节点(也可以更多,关键在于网络时延)。

使用 pvecm 可以创建新的集群,可以向集群新增节点,可以从集群删除节点,可以查看集群状态信息,也可以完成其他各种集群管理操作。Proxmox VE 集群文件系统(pmxcfs)用于确保配置信息透明地发送到集群中所有节点,并保持一致。

以集群方式使用 Proxmox VE 有以下优势:

集中的 web 管理

多主集群架构:从任何一个节点都可以管理整个集群

pmxcfs:以数据库驱动的文件系统保存配置文件,并通过 corosync 在确保所有节点的配置信息实时同步。

虚拟机和容器可方便地在物理服务器节点之间迁移。

快速部署。

基于集群的防火墙和 HA 服务。

5.1 部署要求

所有节点必须在同一子网,以便各个节点使用 corosync 多播通信(详情可查看Corosync Cluster Engine)。Corosync 使用 UDP 5404 和 5405 端口进行集群通信。

注意:有些交换机默认设置关闭了 IP 多播,需要先手工启用多播通信。

各节点日期和时间需要保持同步。

各节点之间要能够在 TCP 22 端口建立 SSH 通信。

如果你需要配置 HA,则最少需要 3 个物理服务器节点,以保证集群多数票机制生效。此外,还需要保证所有节点使用同一版本的 Proxmox VE。

我们建议为集群通信分配专用网卡,特别是在配置共享存储的情况下,分配专用网卡能确保集群通信的稳定可靠。

注意:Proxmox VE 3.x 或更早版本不能和 Proxmox VE 4.x 混合组建集群。

5.2 节点服务器准备

首先需要在物理服务器节点安装 Proxmox VE。确保所有节点的主机名和 IP 地址都配置妥当。加入集群后将不允许再修改主机名和 IP 地址。

目前,创建集群操作必须在命令行控制台下进行,所以你必须通过 ssh 登录节点服务器以便进行操作。

5.3 创建集群

首先通过 ssh 远程登录一个 Proxmox VE 节点。然后为你的集群想一个名字,注意不要
和已有的集群重名。一旦建立集群后,将不允许修改集群名称。创建命令如下:

hp1# pvecm create YOUR-CLUSTER-NAME

警告集群名称用于计算生成集群多播通信地址。如果在网络里已经有 Proxmox VE 集群在运行,请务必确保集群名称不重复。

创建集群后,可以用如下命令查看集群状态:

hp1# pvecm status

5.4 新增集群节点

通过 ssh 远程登录要加入 Proxmox VE 集群的新节点。执行如下命令。

hp2# pvecm add IP-ADDRESS-CLUSTER

这里 IP-ADDRESS-CLUSTER 可以是已有集群中任意节点的 IP 地址。

警告为避免虚拟机 ID 冲突,Proxmox VE 规定新节点加入集群前不能配置有任何虚拟机。

此外,新加入节点/etc/pve 目录下的原有配置信息将被集群配置全部覆盖。如果节点上已有虚拟机,可以首先使用 vzdump 将所有虚拟机备份,然后删除节点上的虚拟机,

待加入集群后再用新的虚拟机 ID 恢复原有虚拟机。

加入集群后可以查看集群状态:

# pvecm status

加入 4 个节点后的集群状态

hp2# pvecm status
Quorum information
~~~~~~~~~~~~~~~~~~
Date: Mon Apr 20 12:30:13 2015
Quorum provider: corosync_votequorum
Nodes: 4
Node ID: 0x00000001
Ring ID: 1928
Quorate: Yes
Votequorum information
~~~~~~~~~~~~~~~~~~~~~~
Expected votes: 4
Highest expected: 4
Total votes: 4
Quorum: 2
Flags: Quorate
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Name
0x00000001 1 192.168.15.91
0x00000002 1 192.168.15.92 (local)
0x00000003 1 192.168.15.93
0x00000004 1 192.168.15.94

如果只需要查看节点列表,可运行如下命令:

# pvecm nodes

列出集群节点列表

hp2# pvecm nodes
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Name
1 1 hp1
2 1 hp2 (local)
3 1 hp3
4 1 hp4

5.4.1 添加位于不同网段的节点

如果要添加一个节点,而该集群网络和该节点在不同网段,你需要使用 ringX_addr 参数来指定节点在集群网络内使用的地址。

pvecm add IP-ADDRESS-CLUSTER -ring0_addr IP-ADDRESS-RING0

如果你要使用冗余环协议,你还需要设置 ring1_addr 参数以传递第二个集群网络地址。

5.5 删除节点

警告:删除节点前请仔细阅读删除操作步骤,不然很可能会发生你预料不到的情况。

首先将待删除节点上所有虚拟机都迁移到其他节点。确保待删除节点上没有任何你需要保留的数据和备份,或者相关数据已经被妥善备份。

通过 ssh 登录待删除节点。执行 pvecm nodes 命令再次确认节点 ID。

hp1# pvecm status
Quorum information
~~~~~~~~~~~~~~~~~~
Date: Mon Apr 20 12:30:13 2015
Quorum provider: corosync_votequorum
Nodes: 4
Node ID: 0x00000001
Ring ID: 1928
Quorate: Yes
Votequorum information
~~~~~~~~~~~~~~~~~~~~~~
Expected votes: 4
Highest expected: 4
Total votes: 4
Quorum: 2
Flags: Quorate
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Name
0x00000001 1 192.168.15.91 (local)
0x00000002 1 192.168.15.92
0x00000003 1 192.168.15.93
0x00000004 1 192.168.15.94

重要:这个时候,你必须将待删除节点关闭并断电,确保该节点不再启动(在当前集群网络内)。

hp1# pvecm nodes
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Name
1 1 hp1 (local)
2 1 hp2
3 1 hp3
4 1 hp4

通过 ssh 登录集群中其他任何一个节点,执行节点删除命令(这里将删除节点 hp4):

hp1# pvecm delnode hp4

如果命令执行成功,将直接返回,而且不会有任何输出。可以运行 pvecm nodes 或者pvecm status 检查删除节点后的集群状态。你会看到类似如下输出:

hp1# pvecm status
Quorum information
~~~~~~~~~~~~~~~~~~
Date: Mon Apr 20 12:44:28 2015
Quorum provider: corosync_votequorum
Nodes: 3
Node ID: 0x00000001
Ring ID: 1992
Quorate: Yes
Votequorum information
~~~~~~~~~~~~~~~~~~~~~~
Expected votes: 3
Highest expected: 3
Total votes: 3
Quorum: 3
Flags: Quorate
Membership information
~~~~~~~~~~~~~~~~~~~~~~
Nodeid Votes Name
0x00000001 1 192.168.15.90 (local)
0x00000002 1 192.168.15.91
0x00000003 1 192.168.15.92

重要:如前所述,必须在执行删除命令前先关闭待删除节点,并且确保被删除点不再启动(在原集群网络中)。这是非常非常重要的!

如果你在原集群网络中重新启动被删除的节点,你的集群会因此而崩溃,并且很难恢复到一个干净的状态。

如果出于某种原因,你需要将被删除节点重新加入原集群,需要按如下步骤操作:

格式化被删除节点,并重新安装 Proxmox VE。

如前一节所述步骤,将该节点重新加入集群。

5.5.1 隔离节点

重要:我们不推荐使用隔离节点操作,按此方法操作时请务必小心。如果你对操作结果存有疑虑,建议使用删除节点的方法。

你可以将一个节点从集群中隔离出去,而无需格式化并重装该节点。但将节点从集群中隔离出去后,被隔离的节点仍然能够访问原 Proxmox VE 集群配置给它的共享存储。

你必须在将节点隔离出去之前解决这个问题。由于不能确保避免发生虚拟机 ID 冲突,

所以 Proxmox VE 集群之间不能共享同一个存储设备。建议为待隔离节点专门创建一个独享的新存储服务。例如,可以为待隔离节点分配一个新的 NFS 服务或者 Ceph 存储池。必须确保该存储服务是独享的。在分配存储之后,可以将该节点的虚拟机迁移到新存储服务,接下来就可以开始进行隔离节点的操作。

警告:必须确保所有的资源都被已经彻底被隔离。否则将可能发生冲突或其他问题。

首先在待隔离节点上停止 pve-cluster 服务:

systemctl stop pve-cluster

systemctl stop corosync

然后将待隔离节点的集群文件系统设置为本地模式:

pmxcfs –l

接下来删除 corosync 配置文件:

rm /etc/pve/corosync.conf

rm /etc/corosync/*

最后重新启动集群文件系统服务:

killall pmxcfs

systemctl start pve-cluster

到此,该节点已经从集群中被隔离出去了。你可以在原集群中任意节点上执行删除命令:

pvecm delnode oldnode

如果因前面的隔离操作,原集群中剩余节点已经不满足多数票,节点删除命令就会失败。你可以将期望的多数票数量设置为 1,如下:

pvecm expected 1

然后重复节点删除命令即可。

接下来你可以重新登录被隔离出去的节点,删除原集群遗留下的各个配置文件。删除
完成后,该节点即可重新加入任意其他集群。

rm /var/lib/corosync/*

被隔离节点的集群文件系统中仍然残留有和原集群其他节点有关的配置文件,这些也是需要删除的。你可以递归删除/etc/pve/nodes/NODENAME 目录清除这些文件。但在执行删除操作前请再三检查,确保删除操作无误。

警告:原集群中其他节点的 SSH 公钥仍会保留在 authorized_key 文件中。这意味着被隔离节点和原集群节点之间仍然可以用 SSH 公钥互相访问。为避免出现意外情况,可以删除/etc/pve/priv/authorized_keys 文件中的对应公钥。

5.6 多数票

Proxmox VE 采用了基于多数票(quorum)的机制确保集群节点状态一致。多数票是指在一个分布式系统内一个分布式交易获准执行所必须得到的最低票数。——Wikipedia 多数票(分布式计算)

在网络可能分裂为多个区域的情况下,修改集群状态需要得到大多数节点在线。如果集群内节点数量不足以构成多数票,集群将自动转为只读状态。

注意:默认情况下,Proxmox VE 集群内每个节点都有一票的投票权。

5.7 集群网络

集群网络是 Proxmox VE 集群的核心。集群网络必须确保可靠地将集群通信数据包按顺序送达所有节点。Proxmox VE 使用 corosync 来实现集群网络通信,确保集群网络通信的高性能,低延时,高可用。我们的分布式集群文件系统(pmxcfs)就基于此构建。

5.7.1 集群网络配置要求

Proxmox VE 集群网络只有在网络延时低于 2ms 时(局域网内)才可以正常工作。尽管 corosync 支持节点间使用单播方式通信,但我们强烈建议使用多播方式进行集群通信。集群网络内不应有其他大流量通信。理想情况下,corosync 最好能拥有专用网络。

注意,一定不要在同一个网络同时运行 Proxmox VE 集群和存储服务。

最佳实践是在创建集群前先检测网络质量,确保网络能满足集群通信要求。

确认所有的节点都在同一网段。并且要确保网络中只连接了用于集群通信(corosync)的网卡。

确保节点彼此之间的网络都连接正常。可以使用 ping 命令测试。

确保多播网络通信工作正常并能达到很高的数据包传输速度。可以使用 omping 命令测试。正常情况下,丢包率应小于 1%。

omping -c 10000 -i 0.001 -F -q NODE1-IP NODE2-IP …

确保多播通信能在要求的时间段内可靠工作。这主要是为了避免物理交换机启用IGMP 但未配置多播查询器(multicast querier)。该项测试至少需要持续 10 分钟。

omping -c 600 -i 1 -q NODE1-IP NODE2-IP …

如以上测试有任何一项未能通过,则你的网络不适合用于组建 Proxmox VE 集群。此时你需要检查网络配置。一般情况下,或者是交换机未启用多播通信,或者是交换机配置了 IGMP 但未启用 multicast querier。

如果你的集群节点数量很少,在实在无法使用多播通信的情况下也可以考虑使用单播方式。

5.7.2 独立集群网络

默认情况下,不带任何参数创建集群时,Proxmox VE 集群会和 Web GUI 以及虚拟机共享使用同一个网络。如果你配置不当,存储网络通信流量也有可能会通过集群网络传输。我们建议避免和其他应用共享使用集群网络,因为 corosync 是一个对时延非常敏感的实时应用。

准备一个新的网络

首先,你需要准备一个新的网络端口,该端口应连接在一个独立物理网络上。其次需要确保这个网络满足以上5.71集群网络配置要求。

创建集群时配置独立网络

可以用带 ring0_addr 和 bindnet0_addr 参数的 pvecm 命令创建拥有独立网络的Proxmox VE 集群。

如果你想配置独立网卡用于集群通讯,而该网卡又配置了静态 IP 地址 10.10.10.1/25,

那么可以使用如下命令:

pvecm create test –ring0_addr 10.10.10.1 –bindnet0_addr 10.10.10.0

然后可以使用如下命令检查集群通信是否正常:

systemctl status corosync

创建集群后配置独立网络

即使在你创建集群后,你也可以配置集群改用其他独立网络进行通信,而无须重建整个集群。修改集群通信网络,各节点的 corosync 服务需要逐个重启,以便使用新网络通信,这可能会导致集群短时间处于丧失多数票的状态。

首先确认你了解编辑 corosync.conf 文件的方法。然后打开 corosync.conf 文件。配置文件 corosync.conf 的内容示例如下:

logging {
debug: off
to_syslog: yes
}
nodelist {
node {
name: due
nodeid: 2
quorum_votes: 1
ring0_addr: due
}
node {
name: tre
nodeid: 3
quorum_votes: 1
ring0_addr: tre
}
node {
name: uno
nodeid: 1
quorum_votes: 1
ring0_addr: uno
}
}
quorum {
provider: corosync_votequorum
}
totem {
cluster_name: thomas-testcluster
config_version: 3
ip_version: ipv4
secauth: on
version: 2
interface {
bindnetaddr: 192.168.30.50
ringnumber: 0
}
}

首先,如果 node 对象中缺少 name 属性,你需要手工增添该属性。注意 name 属性值必须和节点主机名一致。

然后,你需要将 ring0_addr 属性的值修改为节点在新集群网络内的地址。你可以使用IP 地址或主机名设置 ring0_addr 属性。如果你使用主机名,必须确保所有的节点都能顺利解析该主机名。

在这里,我们计划将集群通信网络改为 10.10.10.1/25,所以需要相应修改所有的ring0_addr 属性。此外,还需要将 totem 一节中的 bindnetaddr 属性值修改为新网络中的地址。该地址可以配置为当前节点连接到新集群网络网卡的 IP 地址。

最后,你需要将 config_version 参数值增加 1。修改后的配置文件内容示例如下:

logging {
debug: off
to_syslog: yes
}
nodelist {
node {
name: due
nodeid: 2
quorum_votes: 1
ring0_addr: 10.10.10.2
}
node {
name: tre
nodeid: 3
quorum_votes: 1
ring0_addr: 10.10.10.3
}
node {
name: uno
nodeid: 1
quorum_votes: 1
ring0_addr: 10.10.10.1
}
}
quorum {
provider: corosync_votequorum
}
totem {
cluster_name: thomas-testcluster
config_version: 4
ip_version: ipv4
secauth: on
version: 2
interface {
bindnetaddr: 10.10.10.1
ringnumber: 0
}
}

最后你需要再次检查配置修改是否正确,然后可以根据编辑 corosync.conf 文件一节的内容,启用新的配置。

由于修改后的配置不能实时在线生效,所以必须重启 corosync 服务。

在一个节点上执行:

systemctl restart corosync

然后检查集群通信是否正常

systemctl status corosync

如果在所有节点上 corosync 服务都能顺利重启并正常运行,那么所有的节点都将逐个改接入新的集群网络。

5.7.3 冗余环协议

为避免网络设备单点故障导致集群通信中断的风险,你可以使用冗余网络技术。比如,你可以利用硬件和操作系统的支持,使用多网卡绑定技术。

Corosync 本身支持配置冗余的通信网络,该技术称为冗余环协议(RRP)。通过该协议可以在另一个网络上同时运行第二个 totem 环。而为了切实增强网络可用性,该网络应该和原集群网络物理隔离,避免共用网络设备。

5.7.4 创建集群时配置 RRP

集群管理工具 pvecm 提供了参数项 bindnetX_addr,ringX_addr 和 rrp_mode,可用于在创建集群时配置使用 RRP。

注意:可以查看 Corosync 参数说明,以了解每个参数的含义。

如果你已经有两个网络,地址分别为 10.10.10.1/24 和 10.10.20.1/24,可以运行如下命令创建 RRP 集群:

pvecm create CLUSTERNAME -bindnet0_addr 10.10.10.1 -ring0_addr 10.10.10.1 \ -bindnet1_addr 10.10.20.1 -ring1_addr 10.10.20.1

5.7.5 创建集群后配置 RRP

创建集群后再配置 RRP 和创建集群后配置独立网络的操作非常类似,区别只在于配置RRP 是增加一个新的 totem 环。

首先需要在 corosync.conf 配置文件中的 totem 节新增一个 interface 对象,并设置ringnumber 属性为 1,bindnetaddr 值为当前节点在新增网络中的地址。另外还需要设置 rrp_mode 属性值为 passive,这是唯一的稳定模式。然后在 nodelist 一节中,为每个 node 对象添加 ring1_addr 属性,并将其值设置为对应节点在新增网络中的地址。

假定你有两个网络,其中原集群网络地址为 10.10.10.1/24,新增网络地址为10.10.20.1/24,最终修改后的配置文件内容示例如下:

totem {
cluster_name: tweak
config_version: 9
ip_version: ipv4
rrp_mode: passive
secauth: on
version: 2
interface {
bindnetaddr: 10.10.10.1
ringnumber: 0
}
interface {
bindnetaddr: 10.10.20.1
ringnumber: 1
}
}
nodelist {
node {
name: pvecm1
nodeid: 1
quorum_votes: 1
ring0_addr: 10.10.10.1
ring1_addr: 10.10.20.1
}
node {
name: pvecm2
nodeid: 2
quorum_votes: 1
ring0_addr: 10.10.10.2
ring1_addr: 10.10.20.2
}
[…] # other cluster nodes here
}
[…] # other remaining config sections here

最后,按照编辑 corosync.conf 文件一节的内容启用新配置。

新配置不能实时在线生效,必须重启 corosync 服务才可以生效。建议最好重启所有节点的操作系统。

如果你不能重启所有节点的操作系统,可以在确认没有启用 HA 的情况下,先停止所有节点的 corosync 服务,然后再逐个启动每个节点的 corosync 服务。

5.8 配置 Corosync

/etc/pve/corosync.conf 文件是 Proxmox VE 集群的核心配置文件。该文件控制着集群成员构成和网络通信。可以查看 corosync.conf 的 man 手册,以获取更多信息。

man corosync.conf

在查看节点成员时,你可以用 pvecm 命令。但在手工改变集群配置时,你可以直接编
辑该 corosync.conf 配置文件。以下是编辑该文件时的一些最佳实践和提示。

5.8.1 编辑 corosync.conf

编辑配置文件 corosync.conf 并非看起来那么简单。Proxmox VE 服务器上一共有两个corosync.conf 配置文件,一个是集群文件系统中的/etc/pve/corosync.conf,另一个是本地文件系统中的/etc/corosync/corosync.conf。对集群文件系统中的 corosync.conf进行编辑,配置变更会自动同步到本地文件系统中的 corosync.conf,但反过来编辑本地文件系统中的 corosync.conf,配置变更不会同步到集群文件系统中的副本。

配置文件 corosync.conf 的内容变化会自动更新到服务配置中。这意味着,配置文件内容的变化会实时生效,并影响 corosync 服务的运行。为了避免编辑过程对 corosync 服务产生意想不到的影响,建议你先复制一个 corosync.conf 的副本,修改该副本而不是直接修改 corosync.conf。

cp /etc/pve/corosync.conf /etc/pve/corosync.conf.new

可以使用你喜欢的编辑器对 corosync.conf 副本进行修改。例如可以使用 Proxmox VE预装的 nano 或者 vim.tiny。

注意:编辑完成后,请记住增加 config_version 的值,否则可能会导致错误。

当编辑完成后,在启用新的配置之前,最好先备份当前配置文件,以便新配置文件启用失败或出现错误时能够回退到原配置。可执行如下命令进行备份:

cp /etc/pve/corosync.conf /etc/pve/corosync.conf.bak

现在可以用新的配置文件覆盖原配置文件,如下:

mv /etc/pve/corosync.conf.new /etc/pve/corosync.conf

启用新配置后,可以用以下命令查看服务状态及配置是否生效

systemctl status corosync

journalctl -b -u corosync

如果新配置未能自动生效,可以尝试重启 corosync 服务,如下:

systemctl restart corosync

如果发现错误,可以尝试按下一节介绍的方法进行排查。

5.8.2 故障排查

错误现象:quorum.expected_votes must be configured

如果 corosync 服务停止运行,而系统日志文件中有如下日志信息时:

[…]
corosync[1647]: [QUORUM] Quorum provider: corosync_votequorum failed to
initialize.
corosync[1647]: [SERV ] Service engine ’corosync_quorum’ failed to load for
reason ’configuration error: nodelist or quorum.expected_votes must be
configured!’
[…]

原因是你在配置文件中设置的 ringX_addr 主机名不能正常解析。

失去多数票的状态下修改配置文件

如果你需要在一个失去多数票的节点上修改/etc/pve/corosync.conf 文件,你可以执行如下命令:

pvecm expected 1

将期望的多数票数目设置为 1,可以让当前节点重新满足多数票的要求,这样你就可以修改配置,或者是将配置恢复到的正常状态。

在 corosync 服务无法启动时,你还需要采取进一步措施以恢复集群。最好是修改本地文件系统中的配置文件/etc/corosync/corosync.conf,先确保 corosync 服务能正常启动。

你需要特别注意,确保所有节点的 corosync.conf 内容都完全一致,避免集群出现脑裂的情况。如果你最终还是无法确认故障原因,可以向 Proxmox 社区寻求帮助。

5.8.3 Corosync 参数说明

ringX_addr

用于设置各个节点在不同的 totem 环内的地址,以用于进行 corosync 集群通信。

bindnetaddr

定义当前节点当前 totem 环所要绑定的网卡端口。可以设置为网卡端口上配置的集群网络内的任意地址。但一般情况下,我们建议在网卡端口上仅绑定一个地址。

rrp_mode

用于设置冗余环协议的运行模式。目前有三种参数值可选,分别是 passive,active 和none。其中 active 仍处于试验阶段,官方不推荐使用。选用 passive 较为合适,不仅可以将集群网络通信带宽提高一倍,而且可以实现集群网络的高可用性。

5.9 集群冷启动

很显然,当所有节点都断线时,集群是无法达到多数票要求的。例如,机房意外断电后,集群往往就处于这样的状态。

注意:使用不间断电源(UPS,也称为“后备电池电源”)是防止断电导致集群失去多数票的一个好办法,特别是在你需要实现 HA 效果的时候。

当节点重启启动时,pve-manager 服务会等待该节点加入集群并获得多数票状态。一旦获得多数票,该服务会启动所有设置了 onboot 标识的虚拟机。

因此,当你启动节点时,或者是意外断电后恢复供电时,你会发现一些节点启动速度会比其他节点快。另外要注意的是,在你的集群获得多数票之间,任何虚拟机都无法启动。

5.10 虚拟机迁移

能够把虚拟机从一个节点迁移到其他节点是集群的重要特性。Proxmox VE 提供了一些方法以便你控制虚拟机迁移过程。首先是 datacenter.cfg 提供了一些配置参数,其次是迁移命令行和 API 接口提供了相关控制参数。

5.10.1 迁移类型

迁移类型是指迁移过程采用加密(secure)或不加密(insecure)通道传输虚拟机数据。将迁移类型设置为 insecure 后,在迁移过程中虚拟机内存数据将以明文方式传输,这有可能导致虚拟机上的敏感数据泄露(例如口令、密钥)。

因此,我们强烈建议使用安全通道迁移虚拟机,特别在你无法控制整个网络链路并无法保证网络不受窃听时。

注意:虚拟机磁盘迁移不受该配置影响。目前,虚拟机磁盘总是通过安全通道迁移。

由于数据加密会耗费大量计算资源,所以该虚拟机迁移时经常会选用“不安全”的传输方式,以节约计算资源。较新型的系统采用了硬件方式进行 AES 加密,受此影响较小。但在 10Gb 或更高速的网络中,该参数设置对于性能的影响会十分明显。

5.10.2 专用迁移网络

默认情况下,Proxmox VE 通过集群网络传输虚拟机迁移数据。但这样虚拟机迁移流量很可能会干扰到敏感的集群网络通信,并且集群网络也未必就是服务器节点所能利用的最大带宽网络。

通过设置迁移网络参数,可以选择一个专用网络进行虚拟机迁移。除传输内存数据,还可以在离线迁移时传输虚拟机磁盘镜像数据。

迁移网络参数值为 CIDR 格式的网络地址。这样的好处是,你无须分别设置迁移的源节点和目标节点地址。Proxmox VE 能够根据 CIDR 格式的网络地址自动决定目标节点应使用的 IP 地址。为确保该机制的正常工作,每个节点在迁移网络中都必须被分配一个且仅分配一个 IP 地址。

迁移网络配置示例

假定有一个 3 节点集群,节点之间通过 3 个不同的网络连接。其中一个是公共的互联网,一个是集群通信网络,一个是高带宽的快速网络。这里我们将选择该快速网络作为虚拟机迁移网络。

该集群的网络配置示例如下:

iface eth0 inet manual
# public network
auto vmbr0
iface vmbr0 inet static
address 192.X.Y.57
netmask 255.255.250.0
gateway 192.X.Y.1
bridge_ports eth0
bridge_stp off
bridge_fd 0
# cluster network
auto eth1
iface eth1 inet static
address 10.1.1.1
netmask 255.255.255.0
# fast network
auto eth2
iface eth2 inet static
address 10.1.2.1
netmask 255.255.255.0

这里,我们将选择快速网络 10.1.2.0/24 作为虚拟机迁移网络。对于命令行方式的迁移操作,可以使用 migration_network 设置迁移网络:

# qm migrate 106 tre –online –migration_network 10.1.2.0/24

如需将该快速网络设置为默认的虚拟机迁移网络,可利用/etc/pve/datacenter.cfg 中的migration 属性进行设置:

# use dedicated migration network

migration: secure,network=10.1.2.0/24

注意:在/etc/pve/datacenter.cfg 中设置虚拟机迁移网络时,必须同时设置迁移类型。

感谢proxmox文档汉化作者(不开源就是耍流氓)

张自然强烈建议大家关注proxmox文档汉化作者微信公众号:proxmox,可以获取文档pdf版本下载。

虽然复制过来内心满满的愧疚感。。。但是我想说用chrome从pdf文件中一点一点复制好累呀,索性我也就跟着文档验证了一遍,确保文档内容在发文日期版本可用也算是张自然做的一点小贡献吧。

最近由于最近经常使用proxmox,用pdf实在不便所以就建议作者搞个web页面然后得到以下回复:

鉴于以上借口张自然就自行动手将pdf内容搬上web了,但是我不提供pdf下载。

张自然强烈建议大家关注proxmox文档汉化作者微信公众号:proxmox,可以获取文档pdf版本下载。

GoDaddy主机初始化设置 – 绑定主域名、设置FTP账户等

老董在”完整$12/年购买GoDaddy经济主机+1个免费域名图文教程“详细的记录如何购买Godaddy虚拟主机的过程,一来可以看到当前年付12美元经济方案虚拟主机还可以继续购买,而且还会赠送免费域名,二来我们可以依照此方法购买其他方案的虚拟主机。但是,在购买虚拟主机后,我们如何使用呢?

在这篇文章中,老董就来记录购买虚拟主机之后,如何设置主域名、设置FTP账户等信息,因为一般的主机商在购买后不需要设置,但是Godaddy是需要设置的,我们一起来看看吧。

第一、登入Godaddy主机目录

登入Godaddy主机目录

这里到账户后台可以看到当前已经购买到的虚拟主机,点击Mange.

第二、设置Godaddy主机主域名

设置Godaddy主机主域名

如果在Godaddy账户中有域名,我们可以选择账户中的域名作为主域名。这个比较关键,经济主机方案只能建立一个站点,所以这个就是我们要建站的域名。也可以点击ENTER DOMAIN添加在其他平台的域名。

第三、选择机房

这里有美国、欧洲、亚洲,三个机房,建议优先选择美国,亚洲的别看这亚洲,速度绕线的。

第四、设置FTP账户

设置FTP账户用户名和密码。

第五、是否自动建站WP

可以自动建站WP博客,但是我们可以选择不建立,以后我们自己建站。点击FINISH完毕。这样我们等待片刻,即可设置完毕。

最后,等待Godaddy自动设置完毕之后,我们就可以去登入cPanel面板管理站点。

完整$12/年购买GoDaddy经济主机+1个免费域名图文教程

老董优惠码中已经有多次提到,从2012年开始Godaddy已经在域名促销上不再为了吸引用户和注册量吸收低质用户,而是在域名、主机、云服务等业务上有所全面拓展。无论是我们个人网站需要虚拟主机,还是外贸网站主机,如果单个网站,建议选择ECONOMY经济主机方案,使用限定的优惠策略,首年仅需12美元,而且还赠送1个免费域名。

在这篇文章中,老董准备亲自购买一台年付经济主机,一来用来验证这个活动的真实性,二来我正好需要一个域名,这里正好送域名,以及通过这个活动可以得到一个100GB虚拟主机,用来搭建网站或者自建网盘存储还是不错的,因为如今第三方网站都陆续关闭或者需要实名认证,所以自建的还是比较靠谱。

废话不啰嗦,我们开始试试看,这个活动当前是否有效。

第一、直达活动专有通道链接

点击直达Godaddy经济主机年付12美元活动>>

第二、选择英文语言+美元币种

选择英文语言+美元币种

选择”United States – English”和”USD$”,这个是关键,每次活动的时候都不同,这次必须这样才可以后面付款。

第三、选择经济主机方案

godaddy选择经济主机方案

这里我们可以看到Godaddy虚拟主机有3个主机方案,这里我们目的是来选择经济主机方案(Economy),这里我们看到的价格不是需要的12美元,不要急,后面会看到的。经济主机方案只能一个网站、100GB硬盘(真够大的)、不限制流量,当然还有赠送域名。如果我们需要其他主机优惠,可以去Godaddy优惠码首页看看其他主机优惠。

这里,我们就先点击 Add to cart 按钮继续。(这里忘记说了,在上图上面,可以选择Linux,还是Windows方案,默认是Linux系统,如果需要Windows系统要预先选择好)

第四、选择Godaddy主机年限

选择Godaddy主机年限

因为只有一年优惠,所以我们需要选择12个月配置。

第五、是否需要备份服务

是否需要备份服务

默认是勾选的,可以购买自动备份服务,但是一般我们也用不上就选择NO THANKS.

第六、其他附加服务是否需要

这里我们如果不需要其他配置附加,那就够不要勾选,直接点击 Continue With These Options 按钮继续。

第七、添加免费赠送的域名

Godaddy免费赠送域名

这里我们需要添加一个需要赠送的域名。不要白不要,我们如果不添加,以后不会补的,所以还是去注册一个,反正是送的。不限制绑定在这个主机的,可以以后直接单独使用。

查阅之后,如果没有被注册,可以直接点击Choose and continue,继续。

第八、检查购物车、是否产品齐全

这里默认有一个OFFICE 365产品,我们需要移除掉,因为虽然自动添加到购物车的,而且是免费一年,但是实际上不免费。我们需要移掉。

这里我们检查看看,主机一年,域名一年,然后总价是12.18美元。然后点击Proceed to checkout按钮继续。

第九、选择支付方式

选择支付方式

这里我们尝试过使用支付宝,是不行的,只能使用PAYPAL付款。

然后就会跳转到PAYPAL,我们登入和支付,最后还会跳转到Godaddy,检查订单最后确认即可。这里我测试后是可行的。

第十、检查订购的产品

这里付款成功后,稍微等待一会会,可以在域名列表中看到自己的域名,以及在主机列表中看到主机。

以及我们去看看主机在不在。

主机也在,但是主机需要初始化设置,具体我们自己设置,在这篇文章中,老董就不去设置了,以后有机会在分享。

最后,12美元购买经济主机总结

1、亲自验证,这个方法是可行的,我们可以通过12美元购买到一年经济主机以及赠送1个域名活动。

2、技巧就是只能使用PAYPAL付款,而且只能在英文界面和美元币种。如果我们有需要就参考购买吧。

横向评测常见的优秀国外5个域名注册商

早年,老董和很多网友一样,选择域名注册商或者域名的时候,喜欢寻找优惠码,比如在五年之前初次接触网站的时候,每次注册域名都会找Godaddy优惠码信息,以及每次海外主机商促销活动都会积极的抢注资格。(尤其是每年黑色星期五主机、域名注册商活动还是挺多的)但是,随着站长年龄的增加,以及我们对于网站建设的深入认识,发现时间才是重要的,没有必要在选择便宜几块钱的域名浪费时间。

如今,无论是老站长还是新站长,我们在域名价格不是差异太大的情况下,更为注重的是域名注册商的口碑、解析的稳定性、商家的安全性等问题,这些才是我们大众重视的,更没有人会浪费太多的时间寻找所谓的免费域名(不建议选择免费域名建站的4个理由)。

在这篇文章中,老董准备分享当前个人认为比较知名且主流的海外域名注册商(国内域名注册商后面再整理),尤其是我们新人朋友会有一些直观的认识。(排名不分先后)

第一、Namecheap

Namecheap

官方网站:https://www.namecheap.com

介绍点评:Namecheap商家也是我一直在使用的域名注册商之一,公司成立于2000年,到目前为止已经拥有3000000注册用户,以及7000000域名保有量。当然也是ICANN认证商家之一。在如今很少有商家发布促销活动的时候,Namecheap商家每年在一些特定的公益、节假日也会发布一些促销活动。

虽然,Namecheap商家域名价格相对比较高,大约10美元左右,但是有些特殊的后缀也经常有活动,比如0.88-2.88美元左右。相对好的是域名新注册会赠送一年隐私保护。NC的客服不错,基本上可以保证24小时在线解决问题,有些问题还会帮助手工解决。

第二、GoDaddy

GoDaddy

官方网站:https://www.godaddy.com

介绍点评:Godaddy域名注册商我们应该大家都知道,从1997年开始就从业这个行当,且至今域名注册量、用户数一直是NO1的地位,至今还没有被同行撼动。从2012年开始,由于公司内部改组,一直我们习惯的低价注册活动直接取消,至今几年我们很少看到低价促销域名活动,甚至在黑色星期五也很少有活动。

不能说商家不重视域名这一块业务,只能说商家不再低价吸收注册用户,因为我们都知道低价注册的域名,基本上是亏本的(一般低于7美金的就是亏本的)。而且给予带来的很少部分用户会第二年续约。所以,Godaddy管理层进行调整政策,开始以政策的口碑营销,以及在云主机、服务器、邮件应用、域名交易平台等业务上共同发展。

GoDaddy商家的特点在于支持支付宝、简体中文,而且还支持中文客服电话,所以相对我们中国站长而言,还是比较容易上手的。域名价格新注册55元左右,基本上在国外比还是比较便宜的,国内也差不多这个价格。

第三、Name.com

Name.com

官方网站:https://www.name.com

介绍点评:估计很多站长都不认识这个域名注册商,的确这个服务商虽然成立于2003年,但是一直很低调。基本上看不到Name.com商家的促销活动信息,早年还会发布一些每月折扣的,现在一点点都没有了。

但是,Name.com依旧发展的很少,之前遇到几个网友还特别喜欢这个商家,因为比较低调,虽然域名价格在10美元左右没有优势,但是比较沉稳。也提供域名注册、交易、主机、SSL等业务。

第四、Namesilo

Namesilo

官方网站:https://www.namesilo.com

介绍点评:Namesilo商家是2012年成立的,看似比其他商家有点晚,但是人家也是ICANN认证商家之一。而且在短短几年中域名注册保有量具体多少忘记了,但是转入域名量在去年的时候突破100000个,可见这个商家还是有优势的。

Namesilo的优势在于新注册和续费价格浮动不大,而且赠送永久隐私保护,但是对于域名注册后的内容管理较为严格,如果我们用来不良内容的,可能会被删除或者冻结账户。所以正规内容网站可以使用。

第五、Dynadot

官方网站:https://www.dynadot.com

介绍点评:Dynadot域名注册商成立于2002年,虽然在域名价格上没有太大的优势,但是有大量的特殊后缀域名可以注册。尤其是在域名到期抢注上优势比较明显,有很多朋友在上面选择抢注过期域名,成功率还是比较高的。

最后,以上五个国外域名注册商是老董接触且一直在使用中的,虽然价格上没有太大的优势,但是从商家的口碑、解析稳定、以及安全系数还是比较高的。很多个人注册商或者代理商,价格便宜,但是转出困难,以及万一跑路,我们损失的比网站数据没有备份问题还要严重。

横向评测常见的优秀国外5个域名注册商

早年,老董和很多网友一样,选择域名注册商或者域名的时候,喜欢寻找优惠码,比如在五年之前初次接触网站的时候,每次注册域名都会找Godaddy优惠码信息,以及每次海外主机商促销活动都会积极的抢注资格。(尤其是每年黑色星期五主机、域名注册商活动还是挺多的)但是,随着站长年龄的增加,以及我们对于网站建设的深入认识,发现时间才是重要的,没有必要在选择便宜几块钱的域名浪费时间。

如今,无论是老站长还是新站长,我们在域名价格不是差异太大的情况下,更为注重的是域名注册商的口碑、解析的稳定性、商家的安全性等问题,这些才是我们大众重视的,更没有人会浪费太多的时间寻找所谓的免费域名(不建议选择免费域名建站的4个理由)。

在这篇文章中,老董准备分享当前个人认为比较知名且主流的海外域名注册商(国内域名注册商后面再整理),尤其是我们新人朋友会有一些直观的认识。(排名不分先后)

第一、Namecheap

Namecheap

官方网站:https://www.namecheap.com

介绍点评:Namecheap商家也是我一直在使用的域名注册商之一,公司成立于2000年,到目前为止已经拥有3000000注册用户,以及7000000域名保有量。当然也是ICANN认证商家之一。在如今很少有商家发布促销活动的时候,Namecheap商家每年在一些特定的公益、节假日也会发布一些促销活动。

虽然,Namecheap商家域名价格相对比较高,大约10美元左右,但是有些特殊的后缀也经常有活动,比如0.88-2.88美元左右。相对好的是域名新注册会赠送一年隐私保护。NC的客服不错,基本上可以保证24小时在线解决问题,有些问题还会帮助手工解决。

第二、GoDaddy

GoDaddy

官方网站:https://www.godaddy.com

介绍点评:Godaddy域名注册商我们应该大家都知道,从1997年开始就从业这个行当,且至今域名注册量、用户数一直是NO1的地位,至今还没有被同行撼动。从2012年开始,由于公司内部改组,一直我们习惯的低价注册活动直接取消,至今几年我们很少看到低价促销域名活动,甚至在黑色星期五也很少有活动。

不能说商家不重视域名这一块业务,只能说商家不再低价吸收注册用户,因为我们都知道低价注册的域名,基本上是亏本的(一般低于7美金的就是亏本的)。而且给予带来的很少部分用户会第二年续约。所以,Godaddy管理层进行调整政策,开始以政策的口碑营销,以及在云主机、服务器、邮件应用、域名交易平台等业务上共同发展。

GoDaddy商家的特点在于支持支付宝、简体中文,而且还支持中文客服电话,所以相对我们中国站长而言,还是比较容易上手的。域名价格新注册55元左右,基本上在国外比还是比较便宜的,国内也差不多这个价格。

第三、Name.com

Name.com

官方网站:https://www.name.com

介绍点评:估计很多站长都不认识这个域名注册商,的确这个服务商虽然成立于2003年,但是一直很低调。基本上看不到Name.com商家的促销活动信息,早年还会发布一些每月折扣的,现在一点点都没有了。

但是,Name.com依旧发展的很少,之前遇到几个网友还特别喜欢这个商家,因为比较低调,虽然域名价格在10美元左右没有优势,但是比较沉稳。也提供域名注册、交易、主机、SSL等业务。

第四、Namesilo

Namesilo

官方网站:https://www.namesilo.com

介绍点评:Namesilo商家是2012年成立的,看似比其他商家有点晚,但是人家也是ICANN认证商家之一。而且在短短几年中域名注册保有量具体多少忘记了,但是转入域名量在去年的时候突破100000个,可见这个商家还是有优势的。

Namesilo的优势在于新注册和续费价格浮动不大,而且赠送永久隐私保护,但是对于域名注册后的内容管理较为严格,如果我们用来不良内容的,可能会被删除或者冻结账户。所以正规内容网站可以使用。

第五、Dynadot

官方网站:https://www.dynadot.com

介绍点评:Dynadot域名注册商成立于2002年,虽然在域名价格上没有太大的优势,但是有大量的特殊后缀域名可以注册。尤其是在域名到期抢注上优势比较明显,有很多朋友在上面选择抢注过期域名,成功率还是比较高的。

最后,以上五个国外域名注册商是老董接触且一直在使用中的,虽然价格上没有太大的优势,但是从商家的口碑、解析稳定、以及安全系数还是比较高的。很多个人注册商或者代理商,价格便宜,但是转出困难,以及万一跑路,我们损失的比网站数据没有备份问题还要严重。