﻿<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:trackback="http://madskills.com/public/xml/rss/module/trackback/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/"><channel><title>C++博客-runsisi</title><link>http://www.cppblog.com/runsisi/</link><description /><language>zh-cn</language><lastBuildDate>Fri, 03 Apr 2026 19:35:53 GMT</lastBuildDate><pubDate>Fri, 03 Apr 2026 19:35:53 GMT</pubDate><ttl>60</ttl><item><title>博客已迁移至 https://runsisi.com/</title><link>http://www.cppblog.com/runsisi/archive/2019/03/03/216282.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Sun, 03 Mar 2019 07:05:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2019/03/03/216282.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/216282.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2019/03/03/216282.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/216282.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/216282.html</trackback:ping><description><![CDATA[<a href="https://runsisi.com/">https://runsisi.com/</a><br /><br /><div><a href="https://runsisi.com/"><img src="http://www.cppblog.com/images/cppblog_com/runsisi/blog.png" width="600" height="435" alt="" /></a></div><img src ="http://www.cppblog.com/runsisi/aggbug/216282.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2019-03-03 15:05 <a href="http://www.cppblog.com/runsisi/archive/2019/03/03/216282.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>基于ceph RBD的Iscsi target实现分析</title><link>http://www.cppblog.com/runsisi/archive/2015/08/15/211568.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Sat, 15 Aug 2015 14:44:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2015/08/15/211568.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/211568.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2015/08/15/211568.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/211568.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/211568.html</trackback:ping><description><![CDATA[<p style="text-align:center" align="center"><strong><span style="font-size:15.0pt;font-family:宋体;">基于</span></strong><strong><span style="font-size:15.0pt;font-family:Consolas">ceph</span></strong><strong><span style="font-size:15.0pt"> RBD</span></strong><strong><span style="font-size:15.0pt;font-family: 宋体;">的</span></strong><strong><span style="font-size:15.0pt; font-family:Consolas">Iscsi target</span></strong><strong><span style="font-size:15.0pt;font-family:宋体;">实现分析</span></strong></p>  <p style="text-align:right;word-break:break-all" align="right"><span style="font-family:Consolas">runsisi AT hust.edu.cn</span></p>  <p style="text-align:right" align="right"><span style="font-family:Consolas">2015/06/12</span></p>  <p>&nbsp;</p>  <p style="text-indent:21.0pt; line-height:150%"><span style="font-family:宋体;">本文总结基于</span><span style="font-family:Consolas">ceph</span><span style="font-family: 宋体;">存储后端的</span><span style="font-family:Consolas">iSCSI target</span><span style="font-family:宋体;">实现，针对几种可能的实现思路进行分析，并输出本文档，本文内容组织结构如下：</span></p>  <p style="margin-left:0cm;text-indent:21.0pt;line-height:150%;"><span style="font-family:Consolas;">1. </span><span style="font-family: 宋体;">描述本文的目的及内容；</span></p>  <p style="margin-left:0cm;text-indent:21.0pt;line-height:150%;"><span style="font-family:Consolas;">2. </span><span style="font-family:Consolas">iSCSI</span><span style="font-family:宋体;">使用</span><span style="font-family:Consolas">ceph</span><span style="font-family:宋体;">作为存储后端的基本实现思路；</span></p>  <p style="margin-left:0cm;text-indent:21.0pt;line-height:150%;"><span style="font-family:Consolas;">3. </span><span style="font-family: 宋体;">分别阐述几种可能的实现方式，分析其各自的特点和可能存在的一些技术障碍；</span></p>  <p style="margin-left:0cm;text-indent:21.0pt;line-height:150%;"><span style="font-family:Consolas;">4. </span><span style="font-family: 宋体;">最后简单总结全文。</span></p>  <h1><span style="font-size:12.0pt;line-height:150%;"><span>1.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">问题提出</span></h1>  <p style="text-indent:21.0pt; line-height:150%"><span style="font-family:Consolas">ceph</span><span style="font-family:宋体;">作为一个真正意义上的统一存储系统，有着很好的应用前景，但到目前为止有多种原因限制了其在传统存储应用领域真正大范围的应用，如客户端仅支持</span><span style="font-family:Consolas">GNU/Linux</span><span style="font-family: 宋体;">系统，内核态客户端实现也仅会合入高版本的内核中等。而对于</span><span style="font-family: Consolas">iSCSI</span><span style="font-family:宋体;">这种传统的存储应用而言，由于客户端配置简单且足够通用，常见的各种系统（包括操作系统和应用系统）一般都对</span><span style="font-family:Consolas">iSCSI</span><span style="font-family: 宋体;">有很好的支持，因此为了扩大</span><span style="font-family:Consolas">ceph</span><span style="font-family:宋体;">的应用范围，特别是应对只支持</span><span style="font-family:Consolas">iSCSI</span><span style="font-family:宋体;">的系统，</span><span style="font-family:Consolas">ceph</span><span style="font-family:宋体;">必须通过某种途径实现对</span><span style="font-family:Consolas">iSCSI</span><span style="font-family:宋体;">的支持。</span></p>  <h1><span style="font-size:12.0pt;line-height:150%;"><span>2.<span style="font:7.0pt &quot;Times New Roman&quot;">&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; </span></span></span><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">基本思考方向</span></h1>  <p style="text-indent:21.0pt;line-height:150%"><span style="font-family:Consolas">ceph</span><span style="font-family: 宋体;">集群目前支持三种形式的存储接口：文件、对象、块，其中块接口</span><span style="font-family:Consolas">(</span><span style="font-family:宋体;">即</span><span style="font-family:Consolas">RBD)</span><span style="font-family: 宋体;">与</span><span style="font-family:Consolas">SCSI</span><span style="font-family:宋体;">块设备读写所要求的接口一致，因此可以基于</span><span style="font-family:Consolas">ceph</span><span style="font-family: 宋体;">的</span><span style="font-family:Consolas">RBD</span><span style="font-family:宋体;">提供</span><span style="font-family:Consolas">SCSI</span><span style="font-family:宋体;">存储系统后端，当然如果有足够信心的话也可以完全抛弃</span><span style="font-family:Consolas">ceph</span><span style="font-family: 宋体;">提供的这三种基础接口，而在原始的</span><span style="font-family:Consolas">RADOS</span><span style="font-family:宋体;">接口上开发新的块接口，当然除非原始的</span><span style="font-family:Consolas">RBD</span><span style="font-family: 宋体;">接口有重要缺陷，否则暂时还看不到重新发明轮子的必要，注意后文的讨论都将基于这一基本假设。</span></p>  <a href="/Files/runsisi/基于ceph-RBD的iSCSI-target实现分析.pdf">/Files/runsisi/基于ceph-RBD的iSCSI-target实现分析.pdf</a><img src ="http://www.cppblog.com/runsisi/aggbug/211568.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2015-08-15 22:44 <a href="http://www.cppblog.com/runsisi/archive/2015/08/15/211568.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>OpenStack学习</title><link>http://www.cppblog.com/runsisi/archive/2015/08/02/211459.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Sun, 02 Aug 2015 14:38:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2015/08/02/211459.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/211459.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2015/08/02/211459.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/211459.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/211459.html</trackback:ping><description><![CDATA[<p style="margin-left:0cm;text-indent:0cm;"><strong><span style="font-size:16.0pt;line-height:150%;">1. </span></strong><strong><span style="font-size:16.0pt; line-height:150%">virtualization</span></strong></p>  <p style="text-indent:21.0pt"><span style="font-family:宋体;">虚拟化，与真实的、物理存在的对象相对应，用于隔离底层物理实现。其中计算机硬件虚拟化是我们所熟知的虚拟化技术，如使用</span>VirtualBox<span style="font-family:宋体;">等虚拟机软件创建多台</span>x86<span style="font-family:宋体;">虚拟机器，使用</span>qemu<span style="font-family: 宋体;">模拟多种硬件平台（</span>x86<span style="font-family:宋体;">，</span>PPC<span style="font-family:宋体;">）等。其它常见类型的虚拟化技术包括：操作系统虚拟化（</span>Docker<span style="font-family:宋体;">，</span>FreeBSD jail<span style="font-family: 宋体;">），存储虚拟化（</span>pooling<span style="font-family:宋体;">），应用软件虚拟化（</span>virtualenv<span style="font-family:宋体;">）等</span><a href="#_ftn1" name="_ftnref1" title=""><span><span><span><span><span style="font-size:12.0pt;line-height: 150%;font-family:Consolas;Times New Roman&quot;;">[1]</span></span></span></span></span></a><span style="font-family:宋体;">。</span></p>  <div><br clear="all" />  <hr align="left" size="1" width="33%" />    <div id="ftn1">  <p style="text-indent:15.75pt"><a href="#_ftnref1" name="_ftn1" title=""><span><span><span><span><span style="font-size:9.0pt;line-height: 150%;font-family:Consolas;Times New Roman&quot;;">[1]</span></span></span></span></span></a><span style="font-family:宋体;">本文只讨论</span>x86<span style="font-family:宋体;">平台的硬件虚拟化；</span></p><p style="text-indent:15.75pt"><br /><span style="font-family:宋体;"></span></p><p style="text-indent:15.75pt"><span style="font-family:宋体;"><a href="/Files/runsisi/openstack学习.pdf">/Files/runsisi/openstack学习.pdf</a><br /></span></p>  </div>  </div><img src ="http://www.cppblog.com/runsisi/aggbug/211459.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2015-08-02 22:38 <a href="http://www.cppblog.com/runsisi/archive/2015/08/02/211459.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用saltstack部署ceph集群</title><link>http://www.cppblog.com/runsisi/archive/2015/01/30/209679.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Fri, 30 Jan 2015 11:46:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2015/01/30/209679.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/209679.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2015/01/30/209679.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/209679.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/209679.html</trackback:ping><description><![CDATA[<p align="right" style="text-align:right;text-indent:21.0pt">runsisi AT hust</p>  <p align="right" style="text-align:right;text-indent:21.0pt"><a href="http://www.cppblog.com/runsisi">http://www.cppblog.com/runsisi</a></p>  <p align="left" style="text-indent: 21pt;"><span style="font-family:宋体;"><br />[本文所提及的部署方法已不适用于新版的ceph-formula]<br />本文简单描述使用</span>saltstack<span style="font-family: 宋体;">部署</span>ceph<span style="font-family:宋体;">集群（</span>MON+OSD<span style="font-family: 宋体;">）的方法。</span></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong><span style="font-size:14.0pt; line-height:150%;">1. </span></strong><strong><span style="font-size:14.0pt; line-height:150%">saltstack</span></strong><strong><span style="font-size:14.0pt;line-height:150%;font-family:宋体;">基本概念</span></strong><strong></strong></p>  <p style="text-indent:21.0pt">master<span style="font-family:宋体;">：</span>saltstack<span style="font-family: 宋体;">服务端，可执行程序为</span>salt-master<span style="font-family:宋体;">；</span></p>  <p style="text-indent:21.0pt">minion<span style="font-family:宋体;">：</span>saltstack<span style="font-family: 宋体;">客户端，可执行程序为</span>salt-minion<span style="font-family:宋体;">；</span></p>  <p style="text-indent:21.0pt">grains<span style="font-family:宋体;">：客户端节点自身所固有的静态数据，如节点的基本信息等；</span></p>  <p style="text-indent:21.0pt">pillar<span style="font-family:宋体;">：在服务端定义的、针对具体客户端的数据。<br /><br /><a href="/Files/runsisi/salt-ceph.pdf">/Files/runsisi/salt-ceph.pdf</a><br /></span></p><img src ="http://www.cppblog.com/runsisi/aggbug/209679.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2015-01-30 19:46 <a href="http://www.cppblog.com/runsisi/archive/2015/01/30/209679.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>puppet ceph部署</title><link>http://www.cppblog.com/runsisi/archive/2014/12/04/209026.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Thu, 04 Dec 2014 12:57:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2014/12/04/209026.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/209026.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2014/12/04/209026.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/209026.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/209026.html</trackback:ping><description><![CDATA[<p><strong><span style="font-size:14.0pt;font-family:宋体;"></span></strong></p><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;"><br /></a><p align="right" style="text-align:right"><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;" style="text-indent: 28px;">runsisi</a><span style="text-indent: 28px;">&nbsp;AT hust</span></p>  <p align="right" style="text-align:right"><a href="http://www.cppblog.com/runsisi"><span style="font-family:Consolas">http://www.cppblog.com/runsisi</span></a></p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">前言</span></strong><strong></strong></p>  <p style="text-indent:24.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%;font-family: 宋体;">本文对使用</span><span style="font-size:12.0pt;line-height:150%">puppet</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">进行</span><span style="font-size:12.0pt;line-height:150%">ceph</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">集群的部署流程进行简要总结。全文结构如下：第一、二节分别对</span><span style="font-size:12.0pt;line-height:150%">puppet</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">和</span><span style="font-size:12.0pt;line-height:150%">ceph</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">进行简单介绍；第三节分析</span><span style="font-size:12.0pt;line-height:150%">puppet-ceph</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">模块的结构和实现；第四节描述</span><span style="font-size:12.0pt;line-height:150%">ceph</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">集群部署的操作流程；第五节总结全文；附录为参考文献及代码。</span></p>  <p style="margin-left:18.0pt;text-indent:-18.0pt;"><strong><span style="font-size:14.0pt;">1.<span style="font-weight: normal; font-stretch: normal; font-size: 7pt; line-height: normal; font-family: 'Times New Roman';">&nbsp;&nbsp;&nbsp;&nbsp; </span></span></strong><strong><span style="font-size:14.0pt">puppet</span></strong></p>  <p style="text-indent:21.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%">puppet</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">是一个开源的配置管理工具</span><span style="font-size:12.0pt;line-height:150%">(Puppet is an open source configuration management utility<sup>[1]</sup>)</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">，同时也是当前最主流的配置管理自动化工具之一。</span></p>  <span style="font-size:12.0pt;font-family:&quot;Calibri&quot;,sans-serif;Times New Roman&quot;;">Puppet</span><span style="font-size:12.0pt; font-family:宋体;Times New Roman&quot;;">有自己独立的语言</span><sup><span style="font-size:12.0pt;font-family:&quot;Calibri&quot;,sans-serif;Times New Roman&quot;;">[2]</span></sup><span style="font-size:12.0pt; font-family:宋体;Times New Roman&quot;;">用于编写配置脚本，但不同于一般的脚本语言，该语言只描述被配置对象的状态（即</span><span style="font-size:12.0pt;font-family:&quot;Calibri&quot;,sans-serif;Times New Roman&quot;;">puppet</span><span style="font-size:12.0pt; font-family:宋体;Times New Roman&quot;;">中的资源），而不需要指定实现该配置所需要的操作步骤。</span><span style="font-size:12.0pt;font-family:&quot;Calibri&quot;,sans-serif;Times New Roman&quot;;">puppet</span><span style="font-size:12.0pt; font-family:宋体;Times New Roman&quot;;">自身定义了很多常见的资源类型，但用户也可以自定义资源类型，具体实现细节可以参阅&#8220;</span><span style="font-size:12.0pt;font-family:&quot;Calibri&quot;,sans-serif;Times New Roman&quot;;">Puppet Types and Providers</span><span style="font-size:12.0pt;font-family:宋体;Times New Roman&quot;;">&#8221;一书。<br /></span><br /><a href="/Files/runsisi/puppet-ceph部署.pdf">/Files/runsisi/puppet-ceph部署.pdf</a><img src ="http://www.cppblog.com/runsisi/aggbug/209026.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2014-12-04 20:57 <a href="http://www.cppblog.com/runsisi/archive/2014/12/04/209026.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>iSCSI CHAP认证</title><link>http://www.cppblog.com/runsisi/archive/2014/09/10/208267.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Wed, 10 Sep 2014 14:25:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2014/09/10/208267.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/208267.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2014/09/10/208267.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/208267.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/208267.html</trackback:ping><description><![CDATA[<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;"><br /></a><p align="right" style="text-align:right"><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;" style="text-indent: 28px;">runsisi</a><span style="text-indent: 28px;">&nbsp;AT hust</span></p>  <p align="right" style="text-align:right"><a href="http://www.cppblog.com/runsisi"><span style="font-family:Consolas">http://www.cppblog.com/runsisi</span></a></p>  <p><strong><span style="font-size:14.0pt;font-family:宋体;">前言</span></strong><strong></strong></p>  <p style="text-indent:24.0pt; line-height:150%"><span style="font-size:12.0pt;line-height:150%">CHAP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">认证是</span><span style="font-size:12.0pt;line-height:150%">iSCSI</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">协议中最主要的认证方式，现有的开源</span><span style="font-size:12.0pt;line-height:150%">iSCSI</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">实现（包括</span><span style="font-size:12.0pt;line-height:150%">initiator</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">和</span><span style="font-size:12.0pt;line-height:150%">target</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">实现）基本上都只支持</span><span style="font-size:12.0pt;line-height:150%">CHAP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">认证，本文将对</span><span style="font-size:12.0pt;line-height:150%">CHAP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">认证及其在</span><span style="font-size:12.0pt;line-height:150%">iSCSI</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">协议中的应用作一个简单的介绍。</span></p>  <p><strong><span style="font-size:14.0pt">CHAP</span></strong><strong><span style="font-size:14.0pt;font-family:宋体;">协议</span></strong><strong></strong></p>  <p style="text-indent:24.0pt;line-height:150%"><span style="font-size:12.0pt;line-height:150%">CHAP<sup>[1]</sup></span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">的全称是</span><span style="font-size:12.0pt;line-height:150%">Challenge-Handshake Authentication Protocol</span><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">，协议细节由</span><span style="font-size:12.0pt;line-height:150%">RFC 1994</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">进行定义。</span><span style="font-size:12.0pt;line-height:150%">CHAP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">最初应用在</span><span style="font-size:12.0pt;line-height:150%">Point to Point Protocol</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">（</span><span style="font-size:12.0pt;line-height:150%">PPP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）中，用于实现</span><span style="font-size:12.0pt;line-height:150%">PPP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">服务器对客户端的身份认证，但也可以应用在其它需要对用户或主机进行身份认证的场合，如</span><span style="font-size:12.0pt;line-height:150%">iSCSI</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">协议就规定使用</span><span style="font-size:12.0pt;line-height:150%">iSCSI</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">协议进行通信的设备必须（</span><span style="font-size:12.0pt;line-height:150%">MUST</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）实现</span><span style="font-size:12.0pt;line-height:150%">CHAP</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">认证。<br /><br />注：附件中的压缩包为iSCSI discovery会话的抓包信息，两次抓包分别为单向CHAP认证和双向CHAP认证过程，<br />iSCSI normal会话的CHAP认证过程和discovery会话是一样的，没有再单独抓包。<br /><br /><a href="/Files/runsisi/iSCSI_CHAP认证.pdf">/Files/runsisi/iSCSI_CHAP认证.pdf<br /></a><a href="/Files/runsisi/iSCSI_CHAP_PCAP.7z">/Files/runsisi/iSCSI_CHAP_PCAP.7z</a><br /></span></p><img src ="http://www.cppblog.com/runsisi/aggbug/208267.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2014-09-10 22:25 <a href="http://www.cppblog.com/runsisi/archive/2014/09/10/208267.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>centos6.x编译打包vim7.4</title><link>http://www.cppblog.com/runsisi/archive/2014/09/06/208240.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Sat, 06 Sep 2014 02:30:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2014/09/06/208240.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/208240.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2014/09/06/208240.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/208240.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/208240.html</trackback:ping><description><![CDATA[<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;"><br /></a><p style="text-align: right" align="right"><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;" style="text-indent: 28px;">runsisi</a><span style="text-indent: 28px;">&nbsp;AT hust</span></p>
<p style="text-align: right" align="right"><a href="http://www.cppblog.com/runsisi"><span style="font-family: Consolas">http://www.cppblog.com/runsisi</span></a></p>
<p style="line-height: 150%; text-indent: 24pt">&nbsp;</p>
<p style="line-height: 150%; text-indent: 24pt"><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">现在公司内部使用的</span><span style="font-size: 12pt; line-height: 150%">RPM</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">系发行版应该多数还停留在</span><span style="font-size: 12pt; line-height: 150%">Centos6.x</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">或</span><span style="font-size: 12pt; line-height: 150%">RHEL6.x</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">版本，</span><span style="font-size: 12pt; line-height: 150%">6.x</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">系列的版本带的</span><span style="font-size: 12pt; line-height: 150%">vim</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">好像都是</span><span style="font-size: 12pt; line-height: 150%">7.2</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">版本的，像我这种装了</span><span style="font-size: 12pt; line-height: 150%">spf13</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">提供的</span><span style="font-size: 12pt; line-height: 150%">vim</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">插件包的</span><span style="font-size: 12pt; line-height: 150%">TX</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">就比较郁闷了，这个插件包只支持</span><span style="font-size: 12pt; line-height: 150%">7.3</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">及以上的版本，</span><span style="font-size: 12pt; line-height: 150%">vim</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">官方好像是没有提供</span><span style="font-size: 12pt; line-height: 150%">rpm</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">包下载的，我每次都是自己下来源代码进行编译，其实挺不方便的，本来只需要进行一次的工作，每次硬是要重新编译打包。让我想起了在学校维护系里的网站时，需要添加一个生成本科毕业设计选题统计</span><span style="font-size: 12pt; line-height: 150%">word</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">文档的功能，大概花了我两天的时间才把这个功能给实现了，每次老师们想要生成这个文档，就在页面上点击一下按钮，然后稍等一小会，网站后台会实时生成一个</span><span style="font-size: 12pt; line-height: 150%">word</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">文档提供下载，好久之后我才突然开窍，其实只需要我自己生成一份然后挂到网站上就行了的，反正毕设选题每年只有一次，哪用</span><span style="font-size: 12pt; line-height: 150%">SB</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">似的每次都去查数据库给生成一份</span><span style="font-size: 12pt; line-height: 150%">:)</span></p>
<p style="line-height: 150%; text-indent: 24pt"><span style="font-size: 12pt; line-height: 150%">google</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">被</span><span style="font-size: 12pt; line-height: 150%">GFW</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">给屏蔽了，因此</span><span style="font-size: 12pt; line-height: 150%">vim</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">的代码也取不下来了，只好从</span><span style="font-size: 12pt; line-height: 150%">Centos7</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">的</span><span style="font-size: 12pt; line-height: 150%">yum</span><span style="font-size: 12pt; font-family: 宋体; line-height: 150%">源里取了一份，路径如下：</span></p>
<p style="line-height: 150%; text-indent: 24pt"></p>
<p style="line-height: 150%"><a href="http://vault.centos.org/7.0.1406/os/Source/SPackages/"><span style="font-size: 12pt; line-height: 150%">http://vault.centos.org/7.0.1406/os/Source/SPackages/</span></a></p>
<p style="line-height: 150%"><a href="/Files/runsisi/centos6.x编译打包vim7.4.pdf"><span style="font-size: 12pt; line-height: 150%"><br /></span></a><a style="color: " href="/Files/runsisi/centos6.x编译打包vim7.4.pdf">/Files/runsisi/centos6.x编译打包vim7.4.pdf</a></p><img src ="http://www.cppblog.com/runsisi/aggbug/208240.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2014-09-06 10:30 <a href="http://www.cppblog.com/runsisi/archive/2014/09/06/208240.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>ceph编译、打包</title><link>http://www.cppblog.com/runsisi/archive/2014/09/03/208223.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Wed, 03 Sep 2014 14:02:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2014/09/03/208223.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/208223.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2014/09/03/208223.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/208223.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/208223.html</trackback:ping><description><![CDATA[<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;"><br /></a><p align="right" style="text-align:right"><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;" style="text-indent: 28px;">runsisi</a><span style="text-indent: 28px;">&nbsp;AT hust</span></p>  <p align="right" style="text-align:right"><a href="http://www.cppblog.com/runsisi"><span style="font-family:Consolas">http://www.cppblog.com/runsisi</span></a></p>  <p style="text-indent:24.0pt;line-height:150%;">&nbsp;</p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><strong><span style="font-size:12.0pt; line-height:150%;">1．&nbsp;</span></strong><strong><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">获取源代码</span></strong><strong></strong></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">获取源代码有多种途径，其中</span><span style="font-size:12.0pt;line-height:150%">ceph</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">官方发布的源代码路径如下：</span><span style="font-size:12.0pt;line-height:150%"> </span></p>  <p style="line-height:150%;"><a href="http://ceph.com/download/"><span style="font-size:12.0pt; line-height:150%">http://ceph.com/download/</span></a></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">在该路径下下载相应发行版本的源代码</span><span style="font-size:12.0pt;line-height:150%">tar</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">包即可，同时也可以使用</span><span style="font-size:12.0pt;line-height:150%">git</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">版本管理工具获取最新的开发版本的源代码</span><sup><span style="font-size:12.0pt;line-height:150%">[1]</span></sup><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">：</span></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt; line-height:150%">git clone --recursive https://github.com/ceph/ceph.git</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><strong><span style="font-size:12.0pt; line-height:150%;">2．&nbsp;</span></strong><strong><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">建立编译环境</span></strong><strong></strong></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">编译打包</span><span style="font-size:12.0pt;line-height:150%">ceph</span><span style="font-size: 12.0pt;line-height:150%;font-family:宋体;">需要相应的工具链以及一系列的第三方库，基于</span><span style="font-size:12.0pt;line-height:150%">deb</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">的发行版和基于</span><span style="font-size:12.0pt;line-height:150%">rpm</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">的发行版所需要的依赖并不尽相同，如果使用</span><span style="font-size:12.0pt;line-height:150%">git</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">从</span><span style="font-size:12.0pt;line-height:150%">github</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">获取的源代码，则在源代码的根目录有两个文件：</span><span style="font-size:12.0pt;line-height:150%">deps.deb.txt, deps.rpm.txt</span><span style="font-size: 12pt; line-height: 150%; font-family: 宋体;">，这两个文件分别记录了这两种类型的发行版建立编译环境所需的工具及第三方依赖库，但是这两个文件所记录的依赖关系并不一定完全准确，如果有缺失的依赖，编译体系进行构建时会报错，再安装相应的依赖即可。<br /><a href="/Files/runsisi/ceph_build.pdf"><br />/Files/runsisi/ceph_build.pdf</a><br /></span></p><img src ="http://www.cppblog.com/runsisi/aggbug/208223.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2014-09-03 22:02 <a href="http://www.cppblog.com/runsisi/archive/2014/09/03/208223.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>使用ceph-deploy工具部署时出现错误：Unable to find /var/lib/ceph/bootstrap-osd/ceph.keyring</title><link>http://www.cppblog.com/runsisi/archive/2014/08/28/208168.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Thu, 28 Aug 2014 14:51:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2014/08/28/208168.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/208168.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2014/08/28/208168.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/208168.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/208168.html</trackback:ping><description><![CDATA[<a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;"><br /></a><p align="right" style="text-align:right"><a href="&#109;&#97;&#105;&#108;&#116;&#111;&#58;&#114;&#117;&#110;&#115;&#105;&#115;&#105;&#64;&#104;&#117;&#115;&#116;&#46;&#101;&#100;&#117;&#46;&#99;&#110;" style="text-indent: 28px;">runsisi</a><span style="text-indent: 28px;">&nbsp;AT hust</span></p>  <p align="right" style="text-align:right"><a href="http://www.cppblog.com/runsisi"><span style="font-family:Consolas">http://www.cppblog.com/runsisi</span></a></p>  <p style="text-indent:24.0pt;line-height:150%;">&nbsp;</p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">该错误在执行命令：</span><span style="font-size:12.0pt;line-height:150%">ceph-deploy mon create-initial </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">时出现，说明该</span><span style="font-size:12.0pt;line-height:150%"> monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点曾经部署过</span><span style="font-size:12.0pt;line-height:150%"> ceph </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">环境，该问题的解决方法很简单，在执行该命令之前删除该</span><span style="font-size:12.0pt;line-height:150%"> monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点</span><span style="font-size:12.0pt;line-height:150%"> /etc/ceph/ </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">下的</span><span style="font-size:12.0pt;line-height:150%">{cluster}.client.admin.keyring </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">文件（</span><span style="font-size: 12.0pt;line-height:150%">cluster</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">名默认配置情况下是</span><span style="font-size:12.0pt;line-height:150%">ceph</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">）。</span></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">该错误的具体原因待会解释，先简单介绍一下该命令执行过程中发生的事情：</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><span style="font-size:12.0pt;line-height:150%;">1．&nbsp;</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">启动</span><span style="font-size:12.0pt;line-height:150%"> monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点的</span><span style="font-size:12.0pt;line-height:150%"> ceph monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">守护进程；</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><span style="font-size:12.0pt;line-height:150%;">2．&nbsp;</span><span style="font-size:12.0pt;line-height:150%">monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点执行</span><span style="font-size:12.0pt;line-height:150%"> ceph-create-keys </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">命令；</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><span style="font-size:12.0pt;line-height:150%;">3．&nbsp;</span><span style="font-size:12.0pt;line-height:150%">ceph-create-keys</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">创建</span><span style="font-size:12.0pt;line-height:150%"> {cluster}.client.admin.keyring</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">；</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><span style="font-size:12.0pt;line-height:150%;">4．&nbsp;</span><span style="font-size:12.0pt;line-height:150%">ceph-create-keys</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">创建</span><span style="font-size:12.0pt;line-height:150%"> bootstrap-{osd, mds}/{cluster}.keyring</span><span style="font-size:12.0pt;line-height: 150%;font-family:宋体;">；</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><span style="font-size:12.0pt;line-height:150%;">5．&nbsp;</span><span style="font-size:12.0pt;line-height:150%">ceph-deploy </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">所在运行节点从</span><span style="font-size:12.0pt;line-height:150%"> monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点取</span><span style="font-size:12.0pt;line-height:150%"> {cluster}.client.admin.keyring, {cluster}.mon.keyring, bootstrap-{osd, mds}/{cluster}.keyring </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">到当前路径；</span></p>  <p style="margin-left:0cm;text-indent:0cm;line-height:150%;"><span style="font-size:12.0pt;line-height:150%;">6．&nbsp;</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">以上任何一步如果文件已存在，则不会新建（或去</span><span style="font-size:12.0pt;line-height:150%"> monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点取）文件。</span></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">回到我们遇到的错误，由于</span><span style="font-size:12.0pt;line-height:150%"> monitor </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">节点之前可能使用</span><span style="font-size:12.0pt;line-height:150%"> ceph-deploy </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">工具进行过部署，再次部署时没有将</span><span style="font-size:12.0pt;line-height:150%"> {cluster}.client.admin.keyring </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">原有的配置文件进行清理，因此第</span><span style="font-size:12.0pt;line-height:150%">3</span><span style="font-size:12.0pt; line-height:150%;font-family:宋体;">步不会创建新的</span><span style="font-size:12.0pt;line-height:150%"> keyring </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">文件，仍然使用上次部署使用的</span><span style="font-size:12.0pt;line-height:150%">keyring</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">，从而导致第</span><span style="font-size:12.0pt;line-height:150%">4</span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">步操作会失败，最终出错。</span></p>  <p style="text-indent:24.0pt;line-height:150%;"><span style="font-size:12.0pt;line-height:150%; font-family:宋体;">从上面的介绍，可以知道，如果要使用</span><span style="font-size:12.0pt;line-height:150%"> ceph-deploy </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">工具再次对</span><span style="font-size:12.0pt;line-height:150%"> ceph </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">集群进行部署，最好将各节点（包括</span><span style="font-size:12.0pt;line-height:150%"> ceph-deploy </span><span style="font-size:12.0pt;line-height:150%;font-family:宋体;">工具所在节点）上原有的配置文件清理之后再进行部署。<br /><br /><a href="/Files/runsisi/ceph_bootstrap_key_fail.pdf">/Files/runsisi/ceph_bootstrap_key_fail.pdf</a><br /><br /></span></p><img src ="http://www.cppblog.com/runsisi/aggbug/208168.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2014-08-28 22:51 <a href="http://www.cppblog.com/runsisi/archive/2014/08/28/208168.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item><item><title>C++14 标准制定完成</title><link>http://www.cppblog.com/runsisi/archive/2014/08/21/208074.html</link><dc:creator>runsisi</dc:creator><author>runsisi</author><pubDate>Wed, 20 Aug 2014 16:34:00 GMT</pubDate><guid>http://www.cppblog.com/runsisi/archive/2014/08/21/208074.html</guid><wfw:comment>http://www.cppblog.com/runsisi/comments/208074.html</wfw:comment><comments>http://www.cppblog.com/runsisi/archive/2014/08/21/208074.html#Feedback</comments><slash:comments>0</slash:comments><wfw:commentRss>http://www.cppblog.com/runsisi/comments/commentRss/208074.html</wfw:commentRss><trackback:ping>http://www.cppblog.com/runsisi/services/trackbacks/208074.html</trackback:ping><description><![CDATA[<span style="font-size: 12px;">http://www.cnbeta.com/articles/320875.htm<br /><br />竟然这么快。。</span><img src ="http://www.cppblog.com/runsisi/aggbug/208074.html" width = "1" height = "1" /><br><br><div align=right><a style="text-decoration:none;" href="http://www.cppblog.com/runsisi/" target="_blank">runsisi</a> 2014-08-21 00:34 <a href="http://www.cppblog.com/runsisi/archive/2014/08/21/208074.html#Feedback" target="_blank" style="text-decoration:none;">发表评论</a></div>]]></description></item></channel></rss>