diff --git a/pages/_assets/file/p440ar-ctrl-benchmark/fio-hba.tar.gz b/pages/_assets/file/p440ar-ctrl-benchmark/fio-hba.tar.gz new file mode 100644 index 00000000..84fe3aac Binary files /dev/null and b/pages/_assets/file/p440ar-ctrl-benchmark/fio-hba.tar.gz differ diff --git a/pages/_assets/file/p440ar-ctrl-benchmark/fio-raid0.tar.gz b/pages/_assets/file/p440ar-ctrl-benchmark/fio-raid0.tar.gz new file mode 100644 index 00000000..2ba3ac24 Binary files /dev/null and b/pages/_assets/file/p440ar-ctrl-benchmark/fio-raid0.tar.gz differ diff --git a/pages/_posts/p440ar-ctrl-benchmark.md b/pages/_posts/p440ar-ctrl-benchmark.md new file mode 100644 index 00000000..5a095d1f --- /dev/null +++ b/pages/_posts/p440ar-ctrl-benchmark.md @@ -0,0 +1,74 @@ +--- +title: P440ar Array Controller 直通评测 +tags: + - HP + - HBA + - RAID + - ZFS +categories: + - 搞机 +layout: post +date: 2022-03-26 +--- + +最近到了一批`HPE DL560 G9`的机器,默认带的是[P440ar](https://support.hpe.com/hpesc/public/docDisplay?docId=emr_na-c04496202)的卡。但是目前我们都是用的ZFS,所以一般来说我们都会把卡刷成`IT Mode`直通给系统。 + +戴尔的卡已经有[很成熟的教程](https://fohdeesha.com/docs/index.html)了,但是HP似乎都没有,目前可以选择的方案看了一圈只有 + +- HBA Mode,他们的卡自带了这个模式 +- RAID 0 for each physical drive,我没想到的是他们界面直接就有这个选项,看来很多这样的需求 + +但是继续找了一下并没有看到有关于更多ZFS的评测,所以这里就记录一下目前收集到的信息 + +## 规格 + +### 硬盘 + +硬盘是`2.5 inch Seagate 1TB 7200 RPM`,具体信息: + +``` +Status: OK +Serial Number: 9XG6E9NN +Model: ST910006CLAR1000 +Media Type: HDD +Capacity: 1000 GB +Firmware Version: AS0D +Encryption Status Not Encrypted +``` + +### 控制器 + +控制器读缓存开启,写缓存关闭 + +## 测试 + +### 脚本 + +使用的是[fio](https://github.com/axboe/fio),配合脚本 + + + +### RAID 0 结果 + +fio-raid0.tar.gz + +### HBA 结果 + +fio-hba.tar.gz + +## 结论 + +目前测试出来单盘的情况下,HBA和Raid0的结果在512K的读写下很相近,但是HBA模式表现似乎要更好一点。 + +所有结果都打包在上面,有需要的可以自行下载研究。如果有更多测试/模式想要测试,可以在评论区留言 + + \ No newline at end of file diff --git a/saber-node.js b/saber-node.js index 2cc1b5b2..71e9473e 100644 --- a/saber-node.js +++ b/saber-node.js @@ -1,15 +1,20 @@ const webpack = require('webpack') -exports.chainWebpack = function(chain) { +const fileLoaderExt = (names, chain) => { chain.module - .rule("pdf") - .test(/\.pdf$/) - .use("pdf") + .rule("file load path") + .test(new RegExp(`\.(${names.join('|')})$`)) + .use("file load path") .loader("file-loader") .options({ - name: "[name].[ext]", + name: "[path][name].[ext]", }); - chain.module +} + +exports.chainWebpack = function(chain) { + fileLoaderExt(["pdf", "tar.gz"], chain) + + chain.module .rule("cool") .test(/\.cool$/) .use("cool")