admin 发布的文章

我现在尽量让我的生活和工作保持在一个很慢的节奏,这样才有足够多的时间休息、看书、思考、保持心态的松弛,因为逐渐发现越发的追赶反而犯错的概率更大,就像买股票时候的追涨杀跌、关注短期收益反而最容易亏损。

但有时候不可避免的会因为某些事情会让内心非常浮躁、烦闷,对我自己最好的办法是马上放下工作或其他手头上的事情,除非停工就会立即对客户带来损失,否则立即投身到大自然中,去骑行、散步、看看山、看看水,会使浮躁的情绪很快冷却,有时候在路上突然就灵感迸发、让我烦闷的事情就突然想开了。

遇到下雨之类天气不好的时候,我发现做做运动,比如趴下做几组俯卧撑、深蹲,然后练练字也能达到类似的效果,十几块好几本行楷的临摹本,如果像我一样只是偶尔烦闷时候平复情绪,够写两三个月,还能让写的字更漂亮!虽然现在做互联网行业几乎很少场合需要写字,最多签个名字,但如果有这样的机会,漂亮的字会让人眼前一亮,比如我就很佩服、喜欢字漂亮的人。

Proxmox+VE用于公有云、VPS的可靠性得到了很多同行长期的验证认可,整个生态环境也满足我的需求,所需功能也基本都能满足,所以我开始用PVE了。我考虑用本地存储,如果是用智简魔方的公有云平台,一般情况只有硬卡RAID10是最好方案;但PVE出现了多个方案,我挑了几个,但很犹豫哪个最合适我:ZFS-RAID-Z2、ZFS-RAID-Z3、ZFS-RAID10,以及硬卡RAID10。

- 阅读剩余部分 -

今天遇到一个很狗血的问题…有1台华为S6720-32X-LI-32S-AC万兆交换机,设备只跑了100Mbps左右,但交换机的统计却显示跑了7-8%,也就是800Mbps左右。

输入 dis mac-address 检查发现没有学习到任何mac地址,判断可能是流量泛洪。

MAC地址转发时,采用相同的HASH算法去查找对应的VLAN+MAC表项,如果无法找到对应的表项,则产生流量泛洪。

- 阅读剩余部分 -

基于mysubmail接口发送短信、电话语音通知。创建脚本后可以通过crontab -e每小时或半小时运行一次,例如:
/30 * python /etc/weed/checkRAID.py
可以在raid出现异常状态时快速获知及时处理,避免故障扩大。

# -*- coding: utf-8 -*-
#!/usr/bin/python
import os
import requests

node = '香港vps-nvmenode-1'
error = 0

def get_status(value):
    try:
        status = value.split(": ")
        return status[1].strip()
    except:
        return False
    

def send_warning():
    global node

    # 语音通知
    voice_url = 'http://api.mysubmail.com/voice/send.json'
    voice_params = { 'appid': '*****',
                      'to': '13200000000',
                      'content': '紧急事态:'+node+'硬盘状态异常,请立即检查',
                      'signature': '**************'
                   }
    #voice_res = requests.post(voice_url, data=voice_params)
    # print voice_res.text

    # 短信通知
    message_url = 'http://api.mysubmail.com/message/send.json'
    message_params = { 'appid': '*****',
                       'to': '13200000000',
                       'content': '【XXX】紧急事态:'+node+'硬盘状态异常,请立即检查',
                       'signature': '**************'
                     }
    message_res = requests.post(message_url, data=message_params)
    # print(message_res.text)


# 检查RAID状态,注意/dev/md10是变动参数,自行fdisk -l查看你的软列阵磁盘名称,如raid1则为/dev/md1
raidinfos = os.popen('mdadm -D /dev/md10').readlines()
for raidinfo in raidinfos:
    raidinfo = raidinfo.strip('\n')
    print(raidinfo)

    if "State : " in raidinfo:
        status = get_status(raidinfo)
        if status != 'active' and status != 'active, checking':
            error = 1

    if "Failed Devices : " in raidinfo:
        status = get_status(raidinfo)
        if status != '0':
            error = 1

    if "Active Devices : " in raidinfo:
        status = get_status(raidinfo)
        if status != '2':
            error = 1

# 发送通知
if error == 1:
    send_warning()

如果RAID0用作CEPH OSD,则建议禁用磁盘级的缓存,也就是磁盘标签上写的那个256MB缓存:

# /opt/MegaRAID/MegaCli/MegaCli64 -LDSetProp -DisDskCache -Immediate -Lall -aAll
                                     
Set Disk Cache Policy to Disabled on Adapter 0, VD 0 (target id: 0) success
Set Disk Cache Policy to Disabled on Adapter 0, VD 1 (target id: 1) success
Set Disk Cache Policy to Disabled on Adapter 0, VD 2 (target id: 2) success
Set Disk Cache Policy to Disabled on Adapter 0, VD 4 (target id: 4) success
Set Disk Cache Policy to Disabled on Adapter 0, VD 5 (target id: 5) success
Set Disk Cache Policy to Disabled on Adapter 0, VD 7 (target id: 7) success
Set Disk Cache Policy to Disabled on Adapter 0, VD 8 (target id: 8) success

- 阅读剩余部分 -

我的CEPH OSD因为列阵卡不支持直通是基于RAID0的,最近ceph性能不足,排查过程iostat观察发现有一些盘r_await或w_await持续1000多,这就需要换盘了。ceph存储一份数据如果是默认3副本,那么就会3份副本写完才会完成写入,如果有1个osd延迟很高,就会影响整体写入速度。

首先可以运行 ceph-volume lvm list 查看osd对应的盘符,如果是bcache,则需要再运行lsblk查看在哪个盘符下。然后查看是哪个盘符,以及盘位,进行更换重建。

- 阅读剩余部分 -

Every 1.0s: ceph -s                Wed Dec  8 10:55:43 2021

  cluster:
    id:     48ff8b6e-1203-4dc8-b16e-d1e89f66e28f
    health: HEALTH_ERR
            1 scrub errors
            Possible data damage: 1 pg inconsistent

  services:
    mon: 3 daemons, quorum ceph-node-1,ceph-node-2,ceph-node-3 (age 12h)
    mgr: ceph-node-2(active, since 4d), standbys: ceph-node-1, ceph-node-3
    osd: 20 osds: 19 up (since 16h), 19 in (since 16h)

  data:
    pools:   2 pools, 513 pgs
    objects: 2.19M objects, 8.1 TiB
    usage:   24 TiB used, 45 TiB / 70 TiB avail
    pgs:     512 active+clean
             1   active+clean+inconsistent

  io:
    client:   3.6 MiB/s rd, 14 MiB/s wr, 896 op/s rd, 1.41k op/s wr

收到CEPH错误报告,一个擦洗错误,CEPH会按设定时间定期检查所有pg校对多副本数据是否一致,而当数据不一致,又无法自身做出决断修复时就会报告错误。常规修复流程:

- 阅读剩余部分 -

今天接客户反映有台服务器下行速度有问题,一看交换机端口下行跑满了,但是在系统里iftop端口流量很低、很正常。

随后检查上联华为交换机,发现所有端口都有不同程度的错包情况、每个端口下行都跑的很高,部分没有客户的、都没开机的只是端口开着下行都在跑。

检查arp没有问题,猜测可能交换机问题,毕竟有两三年没重启了,虽然不知道原因,但保存临时配置重启了下交换机就恢复了。

其他可能的原因排查:https://support.huawei.com/enterprise/zh/knowledge/EKB1000601298

今天ceph db出现溢出情况,记录一下解决方式。

[root@ceph-node-1 ceph-admin-node]#  ceph health detail
 HEALTH_WARN 6 OSD(s) experiencing BlueFS spillover
[WRN] BLUEFS_SPILLOVER: 6 OSD(s) experiencing BlueFS spillover
     osd.4 spilled over 17 MiB metadata from 'db' device (3.6 GiB used of 35 GiB) to slow device
     osd.5 spilled over 47 MiB metadata from 'db' device (3.2 GiB used of 35 GiB) to slow device
     osd.6 spilled over 125 MiB metadata from 'db' device (3.1 GiB used of 35 GiB) to slow device
     osd.12 spilled over 4.1 MiB metadata from 'db' device (3.9 GiB used of 35 GiB) to slow device
     osd.13 spilled over 21 MiB metadata from 'db' device (3.8 GiB used of 35 GiB) to slow device
     osd.14 spilled over 22 MiB metadata from 'db' device (3.8 GiB used of 35 GiB) to slow device

- 阅读剩余部分 -

查看新插入的HDD Slot Number编号:

/opt/MegaRAID/MegaCli/MegaCli64 -PDList -aALL -NoLog|egrep "Enclosure Device ID|Slot Number|Device Id|Firmware state"

确认是3以后创建RAID0:

/opt/MegaRAID/MegaCli/MegaCli64 -CfgLdAdd -r0[32:3] WB Direct -a0

- 阅读剩余部分 -