-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathindex.html
535 lines (470 loc) · 24.7 KB
/
index.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
<title>享受编程 - Coding Your Ambition.</title>
<meta name="renderer" content="webkit" />
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1"/>
<meta http-equiv="Cache-Control" content="no-transform" />
<meta http-equiv="Cache-Control" content="no-siteapp" />
<meta name="theme-color" content="#f8f5ec" />
<meta name="msapplication-navbutton-color" content="#f8f5ec">
<meta name="apple-mobile-web-app-capable" content="yes">
<meta name="apple-mobile-web-app-status-bar-style" content="#f8f5ec">
<meta name="author" content="Meoop" /><meta name="description" content="Meoop's Blog" /><meta name="keywords" content="code" />
<meta name="generator" content="Hugo 0.69.0 with theme even" />
<link rel="canonical" href="http://blog.meoop.me/" />
<link href="http://blog.meoop.me/index.xml" rel="alternate" type="application/rss+xml" title="享受编程 - Coding Your Ambition." />
<link href="http://blog.meoop.me/index.xml" rel="feed" type="application/rss+xml" title="享受编程 - Coding Your Ambition." />
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/manifest.json">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<link href="/sass/main.min.bcd489339cac29b395f315f2a2e16bf29afa8cdf7b20ca5b348385d0971a5db7.css" rel="stylesheet">
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/jquery.fancybox.min.css" integrity="sha256-7TyXnr2YU040zfSP+rEcz29ggW4j56/ujTPwjMzyqFY=" crossorigin="anonymous">
<meta property="og:title" content="享受编程 - Coding Your Ambition." />
<meta property="og:description" content="Meoop's Blog" />
<meta property="og:type" content="website" />
<meta property="og:url" content="http://blog.meoop.me/" />
<meta property="og:updated_time" content="2019-11-04T21:29:18+08:00" />
<meta itemprop="name" content="享受编程 - Coding Your Ambition.">
<meta itemprop="description" content="Meoop's Blog"><meta name="twitter:card" content="summary"/>
<meta name="twitter:title" content="享受编程 - Coding Your Ambition."/>
<meta name="twitter:description" content="Meoop's Blog"/>
<!--[if lte IE 9]>
<script src="https://cdnjs.cloudflare.com/ajax/libs/classlist/1.1.20170427/classList.min.js"></script>
<![endif]-->
<!--[if lt IE 9]>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/html5shiv.min.js"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dest/respond.min.js"></script>
<![endif]-->
</head>
<body>
<div id="mobile-navbar" class="mobile-navbar">
<div class="mobile-header-logo">
<a href="/" class="logo">Ambition</a>
</div>
<div class="mobile-navbar-icon">
<span></span>
<span></span>
<span></span>
</div>
</div>
<nav id="mobile-menu" class="mobile-menu slideout-menu">
<ul class="mobile-menu-list">
<a href="/">
<li class="mobile-menu-item">Home</li>
</a><a href="/post/">
<li class="mobile-menu-item">Archives</li>
</a><a href="/tags/">
<li class="mobile-menu-item">Tags</li>
</a><a href="/categories/">
<li class="mobile-menu-item">Categories</li>
</a>
</ul>
</nav>
<div class="container" id="mobile-panel">
<header id="header" class="header">
<div class="logo-wrapper">
<a href="/" class="logo">Ambition</a>
</div>
<nav class="site-navbar">
<ul id="menu" class="menu">
<li class="menu-item">
<a class="menu-item-link" href="/">Home</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/post/">Archives</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/tags/">Tags</a>
</li><li class="menu-item">
<a class="menu-item-link" href="/categories/">Categories</a>
</li>
</ul>
</nav>
</header>
<main id="main" class="main">
<div class="content-wrapper">
<div id="content" class="content">
<section id="posts" class="posts">
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/use-kubevirt-to-manage-virtualization-workloads-on-kubernetes/">在 Kubernetes 上使用 KubeVirt 管理虚拟机负载</a></h1>
<div class="post-meta">
<span class="post-time"> 2019-11-04 </span>
<div class="post-category">
<a href="/categories/kubernetes/"> kubernetes </a>
<a href="/categories/kubevirt/"> kubevirt </a>
</div>
<span class="more-meta"> 4827 words </span>
<span class="more-meta"> 10 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p>近几年的时间里,kubernetes 不断发展壮大,各个功能也逐渐完善,越来越多的项目开始基于 kubernetes 构建,企业内部也大多搭建了自己的 kubernetes 平台。同时企业也存在大量的旧的项目,大多都是基于虚拟机构建,迁移到 kubernetes 存在着较高的成本,风险也比较大。随着 kubernetes 的功能完善,很多新业务已经上了 kubernetes,企业内部需要同时维护着 k8s 和虚拟机两套平台,同时维护两套平台给运维带来了巨大的负担,因此急切的需求一种方案解决该问题。在 kubernetes 可以通过 KubeVirt 管理虚拟机,正好用于解决上述管理难题。</p>
</div>
<div class="read-more">
<a href="/post/use-kubevirt-to-manage-virtualization-workloads-on-kubernetes/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/lxcfs-part-2-implementation/">LXCFS Part 2 - Implementation Details</a></h1>
<div class="post-meta">
<span class="post-time"> 2019-08-22 </span>
<div class="post-category">
<a href="/categories/lxcfs/"> lxcfs </a>
<a href="/categories/container/"> container </a>
</div>
<span class="more-meta"> 5441 words </span>
<span class="more-meta"> 11 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p><a href="https://blog.meoop.me/post/lxcfs-part-1-introduction/">上一篇文章我们主要了解了 LXCFS 的使用场景以及在 docker/kubernetes 中如何使用 LXCFS</a>,这篇文章我们从源码入手,了解下 LXCFS 是如何实现上面功能的。LXCFS 是基于 fuse 实现的虚拟文件系统,理解 LXCFS,我们需要先了解 fuse,然后再对 LXCFS 的源码进行解读。下面代码解读是在 lxcfs-3.1.2 的代码基础上进行分析的。</p>
</div>
<div class="read-more">
<a href="/post/lxcfs-part-2-implementation/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/lxcfs-part-1-introduction/">LXCFS Part 1 - Intro to LXCFS</a></h1>
<div class="post-meta">
<span class="post-time"> 2019-08-14 </span>
<div class="post-category">
<a href="/categories/lxcfs/"> lxcfs </a>
<a href="/categories/container/"> container </a>
</div>
<span class="more-meta"> 2412 words </span>
<span class="more-meta"> 5 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p>在使用容器部署应用时,我们经常会遇到下面场景:</p>
<ul>
<li>在对 Java 应用容器化部署的过程中,自己设置了容器的资源限制,但是 Java 应用容器在运行中还是会莫名奇妙地被 OOM Killer 干掉。</li>
<li>在设置了容器的资源限制的容器中通过 top,uptime,free 等查看信息,读到的是 host 上的信息,不是资源限制后的结果。</li>
</ul>
<p>这是由于 Linux 容器的资源限制是通过 cgroup 实现的,但在容器内部依旧共享宿主机内核的 <code>procfs</code>,其中包含了如:<code>meminfo</code>,<code>cpuinfo</code>,<code>stat</code>,<code>uptime</code> 等包含宿主机资源信息的 proc 文件。一些应用或者监控工具如 free/top 还依赖 proc 下的文件内容获取资源配置和使用情况。当它们在容器中运行时,就会把宿主机的资源状态读取出来,引起了错误和不便。LXCFS 就是用来解决这类问题的。</p>
</div>
<div class="read-more">
<a href="/post/lxcfs-part-1-introduction/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/upgrade-glusterfs/">Upgrade Glusterfs</a></h1>
<div class="post-meta">
<span class="post-time"> 2019-07-24 </span>
<div class="post-category">
<a href="/categories/glusterfs/"> glusterfs </a>
</div>
<span class="more-meta"> 1268 words </span>
<span class="more-meta"> 3 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p>支持 3.10.x,3.12.x,4.1.x,5.x 升级到 6.x 版本。</p>
<h2 id="升级前注意事项">升级前注意事项</h2>
<ul>
<li>只有复制卷和分布式复制卷可以联机升级</li>
<li>分布式卷和条纹卷不支持联机升级</li>
<li>升级过程中不得修改任何配置</li>
<li>如果使用 geo-replication ,先升级 slave 节点,再升级 master 节点</li>
<li>建议先升级服务端再升级客户端</li>
<li>建议使用相同版本的客户端和服务端</li>
<li>升级前建议阅读版本的 release note,熟悉新版本删除和添加的功能</li>
</ul>
</div>
<div class="read-more">
<a href="/post/upgrade-glusterfs/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/rebuild-kernel-with-src.rpm/">Rebuild kernel package with src.rpm (Centos7)</a></h1>
<div class="post-meta">
<span class="post-time"> 2019-01-24 </span>
<div class="post-category">
<a href="/categories/linux/"> Linux </a>
</div>
<span class="more-meta"> 389 words </span>
<span class="more-meta"> 1 min read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p><strong>注意,应使用非 root 用户进行 rpm 包构建。</strong></p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre class="chroma"><code><span class="lnt">1
</span><span class="lnt">2
</span><span class="lnt">3
</span></code></pre></td>
<td class="lntd">
<pre class="chroma"><code class="language-bash" data-lang="bash"><span class="c1"># add user</span>
useradd -m -r koji
su koji
</code></pre></td></tr></table>
</div>
</div><p>下载源码包,安装源码包,解压源码。</p>
<div class="highlight"><div class="chroma">
<table class="lntable"><tr><td class="lntd">
<pre class="chroma"><code><span class="lnt"> 1
</span><span class="lnt"> 2
</span><span class="lnt"> 3
</span><span class="lnt"> 4
</span><span class="lnt"> 5
</span><span class="lnt"> 6
</span><span class="lnt"> 7
</span><span class="lnt"> 8
</span><span class="lnt"> 9
</span><span class="lnt">10
</span></code></pre></td>
<td class="lntd">
<pre class="chroma"><code class="language-bash" data-lang="bash">sudo yum install yum-utils rpm-build
<span class="c1"># download source package</span>
yumdownloader --source kernel
<span class="c1"># install build dependencies</span>
yum-builddep kernel
<span class="c1"># install source package,</span>
rpm -i kernel-*.src.rpm
<span class="nb">cd</span> ~/rpmbuild
<span class="c1"># unpacking the sources and applying any patches.</span>
rpmbuild -bp SPECS/kernel.spec
</code></pre></td></tr></table>
</div>
</div>
</div>
<div class="read-more">
<a href="/post/rebuild-kernel-with-src.rpm/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/resizing-persistent-volumes-using-kubernetes/">Resizing Persistent Volumes Using Kubernetes</a></h1>
<div class="post-meta">
<span class="post-time"> 2019-01-21 </span>
<div class="post-category">
<a href="/categories/kubernetes/"> Kubernetes </a>
</div>
<span class="more-meta"> 280 words </span>
<span class="more-meta"> 2 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p><strong>Feature gates:</strong></p>
<ul>
<li>enable <code>ExpandPersistentVolumes</code> feature gate (1.11⬆️ default:ture).</li>
<li>enable <code>PersistentVolumeClaimResize</code> admission controller (1.11⬆️ default:ture).</li>
</ul>
<p><strong>StorageClass:</strong></p>
<ul>
<li>Storage class’s <code>allowVolumeExpansion</code> field should set to true.</li>
</ul>
</div>
<div class="read-more">
<a href="/post/resizing-persistent-volumes-using-kubernetes/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/running-containers-with-ovs-dpdk/">Running Containers With OVS-DPDK</a></h1>
<div class="post-meta">
<span class="post-time"> 2018-07-31 </span>
<div class="post-category">
<a href="/categories/container/"> container </a>
<a href="/categories/network/"> network </a>
</div>
<span class="more-meta"> 3894 words </span>
<span class="more-meta"> 8 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<ul>
<li><a href="#ovs-dpdk-%E6%98%AF%E4%BB%80%E4%B9%88">OVS-DPDK 是什么</a></li>
<li><a href="#ovs-dpdk-%E4%B8%BA%E5%AE%B9%E5%99%A8%E6%8F%90%E4%BE%9B%E7%BD%91%E7%BB%9C%E6%94%AF%E6%8C%81">OVS-DPDK 为容器提供网络支持</a>
<ul>
<li><a href="#%E5%9F%BA%E4%BA%8E-dpdk-%E7%9A%84%E5%BA%94%E7%94%A8">基于 DPDK 的应用</a></li>
<li><a href="#%E5%9F%BA%E4%BA%8E%E5%86%85%E6%A0%B8%E5%8D%8F%E8%AE%AE%E6%A0%88%E7%9A%84%E5%BA%94%E7%94%A8">基于内核协议栈的应用</a></li>
</ul>
</li>
<li><a href="#ovs-dpdk-%E5%AE%B9%E5%99%A8%E7%BD%91%E7%BB%9C%E6%96%B9%E6%A1%88%E9%AA%8C%E8%AF%81">OVS-DPDK 容器网络方案验证</a>
<ul>
<li><a href="#%E6%90%AD%E5%BB%BA-dpdk-%E7%8E%AF%E5%A2%83">搭建 DPDK 环境</a></li>
<li><a href="#%E7%BC%96%E8%AF%91%E8%BF%90%E8%A1%8C-ovs-dpdk">编译运行 OVS-DPDK</a></li>
<li><a href="#dpdk-%E5%BA%94%E7%94%A8%E7%9A%84%E5%AE%B9%E5%99%A8">DPDK 应用的容器</a></li>
<li><a href="#%E5%9F%BA%E4%BA%8E%E5%86%85%E6%A0%B8%E5%8D%8F%E8%AE%AE%E6%A0%88%E7%9A%84%E5%BA%94%E7%94%A8%E4%BD%BF%E7%94%A8-veth-pair-%E8%BF%9E%E6%8E%A5-ovs-dpdk">基于内核协议栈的应用(使用 veth pair 连接 ovs-dpdk)</a></li>
<li><a href="#%E5%9F%BA%E4%BA%8E%E5%86%85%E6%A0%B8%E5%8D%8F%E8%AE%AE%E6%A0%88%E7%9A%84%E5%BA%94%E7%94%A8%E4%BD%BF%E7%94%A8-tap-%E8%BF%9E%E6%8E%A5-ovs-dpdk-%E7%9A%84-virtio-user-%E6%8E%A5%E5%8F%A3">基于内核协议栈的应用(使用 tap 连接 ovs-dpdk 的 virtio-user 接口)</a></li>
</ul>
</li>
<li><a href="#%E5%8E%82%E5%95%86%E6%96%B9%E6%A1%88">厂商方案</a>
<ul>
<li><a href="#%E7%BE%8E%E5%9B%A2%E7%82%B9%E8%AF%84%E5%AE%B9%E5%99%A8%E5%B9%B3%E5%8F%B0%E7%BD%91%E7%BB%9C%E6%9E%B6%E6%9E%84">美团点评容器平台网络架构</a></li>
<li><a href="#%E7%BD%91%E6%98%93">网易</a></li>
<li><a href="#intel">Intel</a></li>
</ul>
</li>
<li><a href="#%E5%8F%82%E8%80%83%E6%96%87%E7%AB%A0">参考文章</a></li>
</ul>
<blockquote>
<p>DPDK(Data Plane Development Kit),即数据平面开发工具包,是一组用于快速数据包处理的数据平面库和网络接口控制器驱动程序,DPDK 为 x86,ARM 和 PowerPC 处理器提供编程框架,可以更快地开发高速数据包网络应用程序。该平台采用 BSD 许可证发布,目前作为 Linux Foundation 下的开源项目进行管理。</p>
</blockquote>
<p>在 X86 架构中,处理数据包的传统方式是 CPU 中断方式,即网卡驱动接收到数据包后通过中断通知 CPU 处理,然后由 CPU 拷贝数据并交给协议栈。在数据量大时,这种方式会产生大量 CPU 中断,导致 CPU 无法运行其他程序。而 DPDK 则采用轮询方式实现数据包处理过程:DPDK 重载了网卡驱动,在收到数据包后不中断通知 CPU,而是将数据包通过零拷贝技术存入内存,这时应用层程序就可以通过 DPDK 提供的接口,直接从内存读取数据包。这种处理方式节省了 CPU 中断时间、内存拷贝时间,并向应用层提供了简单易行且高效的数据包处理方式,使得网络应用的开发更加方便。但同时,由于需要重载网卡驱动,因此该开发包目前只能用在部分网络处理芯片的网卡中。</p>
</div>
<div class="read-more">
<a href="/post/running-containers-with-ovs-dpdk/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/%E4%BD%BF%E7%94%A8xmodmap%E5%8F%96%E6%B6%88linux%E4%B8%8B%E9%BC%A0%E6%A0%87%E4%B8%AD%E9%94%AE%E7%B2%98%E8%B4%B4%E5%8A%9F%E8%83%BD/">使用 xmodmap 取消 Linux 下鼠标中键粘贴功能</a></h1>
<div class="post-meta">
<span class="post-time"> 2018-03-07 </span>
<div class="post-category">
<a href="/categories/linux/"> Linux </a>
</div>
<span class="more-meta"> 267 words </span>
<span class="more-meta"> 1 min read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p>在 Linux 下选中东西后,按住鼠标的滚轮中键进行粘贴,是 Linux 下非常好用的功能。但是不巧,鼠标的滚轮中键太灵敏,在滚动滚轮时候非常容易按下中键,这时候编辑好的文档突然就插入了不知道从哪复制来的东西。</p>
<p>xmodmap 是用于修改X中键盘映射和指针按钮映射的实用程序,我们可以用 xmodmap 修改鼠标中键的映射,进而关掉鼠标中键的复制功能,解决误触鼠标中键问题。</p>
</div>
<div class="read-more">
<a href="/post/%E4%BD%BF%E7%94%A8xmodmap%E5%8F%96%E6%B6%88linux%E4%B8%8B%E9%BC%A0%E6%A0%87%E4%B8%AD%E9%94%AE%E7%B2%98%E8%B4%B4%E5%8A%9F%E8%83%BD/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/%E5%AE%B9%E5%99%A8%E5%AE%9E%E7%8E%B0%E6%8A%80%E6%9C%AF%E6%8A%80%E6%9C%AF%E5%8F%8A%E5%85%B6%E5%8E%9F%E7%90%86namespace/">容器实现技术技术及其原理:Namespace</a></h1>
<div class="post-meta">
<span class="post-time"> 2017-12-24 </span>
<div class="post-category">
<a href="/categories/linux/"> Linux </a>
<a href="/categories/container/"> container </a>
</div>
<span class="more-meta"> 3203 words </span>
<span class="more-meta"> 7 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p>容器是当前的热门技术,容器使用到 Linux 的 <code>namespace</code> 和 <code>cgroup</code> 功能,<code>namespace</code> 用于资源隔离,<code>cgroup</code> 用于资源限制。除了这两个外,容器还使用到了 selinux/apparmor 增强容器安全,veth pair/bridge/ovs 等技术提供容器网络,aufs/overlayfs/lvm 等技术构建容器的 rootfs。这篇文章主要对 namespace 进行介绍,了解它功能已经使用方式,后续文章再对其他技术进行介绍。</p>
<h2 id="linux-namespace">Linux Namespace</h2>
<p><code>Namespace</code> 是 Linux 内核的一项功能,用于对资源进行隔离,<code>namespace</code> 以一种抽象的方式包装特定的资源,使得在这个 <code>namespace</code> 中的进程实例看起来它们具有自己的受到隔离的全局资源,不同 <code>namespace</code> 的进程能看到的资源是不同的。</p>
</div>
<div class="read-more">
<a href="/post/%E5%AE%B9%E5%99%A8%E5%AE%9E%E7%8E%B0%E6%8A%80%E6%9C%AF%E6%8A%80%E6%9C%AF%E5%8F%8A%E5%85%B6%E5%8E%9F%E7%90%86namespace/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
<article class="post">
<header class="post-header">
<h1 class="post-title"><a class="post-link" href="/post/megacli%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%B1%87%E6%80%BB/">MegaCli 常用命令汇总</a></h1>
<div class="post-meta">
<span class="post-time"> 2017-05-09 </span>
<div class="post-category">
<a href="/categories/linux/"> Linux </a>
</div>
<span class="more-meta"> 968 words </span>
<span class="more-meta"> 2 mins read </span>
</div>
</header>
<div class="post-content">
<div class="post-summary">
<p>MegaCli 是 LSI 公司提供的工具, 可以实现对 RAID 卡进行配置和状态监控。下面是一些比较常用的 MegaCli 命令:</p>
</div>
<div class="read-more">
<a href="/post/megacli%E5%B8%B8%E7%94%A8%E5%91%BD%E4%BB%A4%E6%B1%87%E6%80%BB/" class="read-more-link">Read more...</a>
</div>
</div>
</article>
</section>
<nav class="pagination">
<a class="next" href="/page/2/">
<span class="next-text">Next</span>
<i class="iconfont icon-right"></i>
</a>
</nav>
</div>
</div>
</main>
<footer id="footer" class="footer">
<div class="social-links">
<a href="[email protected]" class="iconfont icon-email" title="email"></a>
<a href="https://www.stackoverflow.com/users/12249756/" class="iconfont icon-stack-overflow" title="stack-overflow"></a>
<a href="http://localhost" class="iconfont icon-twitter" title="twitter"></a>
<a href="https://www.facebook.com/lei.yi.908" class="iconfont icon-facebook" title="facebook"></a>
<a href="https://www.linkedin.com/in/yilei/" class="iconfont icon-linkedin" title="linkedin"></a>
<a href="https://github.com/Meoop" class="iconfont icon-github" title="github"></a>
<a href="http://weibo.com/18722081826" class="iconfont icon-weibo" title="weibo"></a>
<a href="http://www.zhihu.com/people/lei.yi" class="iconfont icon-zhihu" title="zhihu"></a>
<a href="http://blog.meoop.me/index.xml" type="application/rss+xml" class="iconfont icon-rss" title="rss"></a>
</div>
<div class="copyright">
<span class="power-by">
Powered by <a class="hexo-link" href="https://gohugo.io">Hugo</a>
</span>
<span class="division">|</span>
<span class="theme-info">
Theme -
<a class="theme-link" href="https://github.com/olOwOlo/hugo-theme-even">Even</a>
</span>
<span class="copyright-year">
©
2015 -
2020
<span class="heart">
<i class="iconfont icon-heart"></i>
</span>
<span class="author">Meoop</span>
</span>
</div>
</footer>
<div class="back-to-top" id="back-to-top">
<i class="iconfont icon-up"></i>
</div>
</div>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/jquery.min.js" integrity="sha256-hwg4gsxgFZhOsEEamdOYGBf13FyQuiTwlAQgxVSNgt4=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/[email protected]/dist/slideout.min.js" integrity="sha256-t+zJ/g8/KXIJMjSVQdnibt4dlaDxc9zXr/9oNPeWqdg=" crossorigin="anonymous"></script>
<script src="https://cdn.jsdelivr.net/npm/@fancyapps/[email protected]/dist/jquery.fancybox.min.js" integrity="sha256-XVLffZaxoWfGUEbdzuLi7pwaUJv1cecsQJQqGLe7axY=" crossorigin="anonymous"></script>
<script type="text/javascript" src="/js/main.min.d7b7ada643c9c1a983026e177f141f7363b4640d619caf01d8831a6718cd44ea.js"></script>
<script type="text/javascript">
window.MathJax = {
tex2jax: {inlineMath: [['$','$'], ['\\(','\\)']]},
showProcessingMessages: false,
messageStyle: 'none'
};
</script>
<script async src="https://cdn.jsdelivr.net/npm/[email protected]/MathJax.js?config=TeX-MML-AM_CHTML" integrity="sha256-nvJJv9wWKEm88qvoQl9ekL2J+k/RWIsaSScxxlsrv8k=" crossorigin="anonymous"></script>
<script type="application/javascript">
var doNotTrack = false;
if (!doNotTrack) {
window.ga=window.ga||function(){(ga.q=ga.q||[]).push(arguments)};ga.l=+new Date;
ga('create', 'UA-101122173-1', 'auto');
ga('set', 'anonymizeIp', true);
ga('send', 'pageview');
}
</script>
<script async src='https://www.google-analytics.com/analytics.js'></script>
</body>
</html>