标签 linux 下的文章

随着版本迭代和 Conway 更新的上线,对运行节点的配置要求也水涨船高,目前为止 9.1.1 的配置要求是

Minimum System Requirements

  • An Intel or AMD x86 processor with two or more cores, at 1.6GHz or faster (2GHz or faster for a stake pool or relay)
  • Or, for MacOS, an Apple Silicon (M1, M2 or M3) processor
  • 24GB of RAM
  • 200GB of free storage (250GB recommended for future growth)

就内存和存储空间这两项,租用云服务器涨配置直接等同于加钱。
实施本地化部署部分节点后,变成一次性投入相对还好点。我这从最早期运营下来的节点,SSD从一开始 120G 升级到 256G,最近又因为空间不足又迫切需要升级到 512G 甚至 1T。

作为经典配置 1(block producer) + 2 (relay) + 1(test + cold wallet)
4个节点4台设备内存独立配置没有办法,但硬盘空间是否可以融合共享达到进一步节省成本的目的呢。

分析和试验了一下,还真可以!



- 阅读剩余部分 -

估计是SSD杂牌的问题,导致解压大 .gz 文件的时候偶尔会出现解压错误。这次更是奇葩地产生了一个乱码文件,然后解压过程被中断。

更烦的是这个乱码文件名,无法用平常的 rm 命令删除。

解决办法

在文件所在目录下,查询文件节点ID(inode)

ls -i

root@adaocalcore:/opt/db# ls -i
24773001 ''$'\364\220\001\t\230'  14417943  027.tar.gz  14417959  039.tar.gz
14417947  000_004.tar.gz          14417944  028.tar.gz  24775413  all.md5

第一个就是乱码文件,对应的文件ID是 24773001

然后用 find -inum {target inode} -delete 命令删除

find -inum 24773001 -delete

搞定

先说结论:只要文件是同个文件,hash是一致的。

Linux

md5sum filepath

#md5sum 01000.chunk 
ae2056ca156511f3a8223e2a4599b7bf  01000.chunk

PHP

md5_file(filename);

<?php
$file = "01000.chunk";
$md5 = md5_file($file);
var_dump($md5);
//string(32) "ae2056ca156511f3a8223e2a4599b7bf"
?>

Python

这个稍微复杂点,要自己实现,而且执行起来效率貌似也有点低。不清楚为何,按理说所有方法都要读取完整文件效率应该相差不大才对,可能是我方法不对。


import hashlib

fname = "01000.chunk"

def md5_file(filename):
    m = hashlib.md5()   #创建md5对象
    with open(filename,'rb') as fobj:
        while True:
            data = fobj.read(4096)
            if not data:
                break
            m.update(data)  #更新md5对象
    return m.hexdigest()    

hash = md5_file(fname)
print(hash, fname) 

面板底部状态灯闪红色,查看 iLO 系统诊断,提示raid1其中一个盘 FAILD, 阵列状态为 Degraded
按提示关机替换问题的硬盘,并使阵列进入修复模式。再度发现挂载 /dev/sdb1/的 /home/目录下部分目录权限和用户描述变为 ????。
等待阵列自动修复完成后对上述问题进行修复,重启后问题处理完毕。

以下是详细备忘:



- 阅读剩余部分 -