Chinaunix首页 | 论坛 | 博客
  • 博客访问: 528962
  • 博文数量: 99
  • 博客积分: 6010
  • 博客等级: 准将
  • 技术积分: 1110
  • 用 户 组: 普通用户
  • 注册时间: 2008-10-01 09:01
文章分类

全部博文(99)

文章存档

2010年(4)

2009年(86)

2008年(9)

我的朋友

分类:

2009-09-08 09:27:51

旧事重提

当新买的SSD投入使用的时候,一切都是那么美好:所有的区块中都没有任何数据,每次写入都是全速进行,一切都和想像的一样美好。随着时间的推移,有些区块中已经填充了数据(有效或无效),现在再对区块中写入数据,控制器就不得不执行读取/修改/写入/清理的繁琐过程了。

较早前,我曾经模拟过最坏的情况:首先将SSD中塞满了各种数据,然后删除整个分区,再重新安装操作系统和运行测试软件。这很接近实际使用中的情况,因为 它的所有区块都被写入,操作系统安装和运行测试软件则增加了一些随机写入的数据,这使得所有区块中数据的分布更接近长期使用SSD的情况,也使得SSD控 制器的工作量大大上升,我喜欢这么折磨它。

问题在于,如果一个SSD正确支持TRIM指令,格式化操作会擦除掉所有我故意塞进去的各种数据。我的关于测试使用后的支持TRIM指令的SSD就会变成和测试新的SSD没有两样了。

为了证明这一点,我找了个支持TRIM的SSD,把它填满,然后格式化,再测试性能,请看下表:

SuperTalent UltraDrive GX 固件版本:1711 4KB随机写入IOPS
新盘数据 13.1MB/s
使用后数据 6.93MB/s
TRIM整理后数据 12.9MB/s


噢,请看,性能并没有真正改变,清理操作需要较长的时间,不过性能基本是一样的。

所以,我需要新的方式来测试。以前那种大压力的测试情况并不能得到它们真正的性能表现。毕竟,我不希望用不严谨的数据来误导群众。

一旦可以在所有驱动器上启用TRIM,我就会在系统启动后将它们填满各种数据,有有效数据,也有无效数据,然后我会删除无效数据,并在整个过程中测试它们的性能。这将测试它们处理数据的方式以及TRIM的工作方式。

遗憾的是,还有驱动器不能正确地支持TRIM。测试版Indilinx固件与TRIM运作良好,不过当系统进入休眠模式,重新唤醒后可能会丢失数据。囧。 同时,这也与INTEL Matrix Storage Manager有点冲突,可能造成TRIM指令不能发送到驱动器。不过据说这些问题都会在年底前得到解决,现在就为TRIM欣喜若狂有点为时尚早。

测试的第一阶段,我们需要转换我们的思路。为了模拟普通用户使用中的情况,我们将测试用的SSD首先进行安全的全盘删除,然后全新安装Windows 7 x64操作系统(非镜像方式),然后安装所有的驱动和程序,把剩余空间全部塞满各种文件,再删除这些无用的文件。在这个填充和删除的过程中,控制器必须跟 踪所有区块中的数据变化,我们以此来尽量逼真地重现普通用户的使用方式和使用情况。

我们使用了最新的IMSM驱动,所以TRIM不会对驱动器有效。这些可怜的SSD。

接下来我们就将看看全新和使用过的性能数据。如果驱动器强制使用TRIM指令,我们不会手动将其关闭。

测试平台

CPU Intel Core i7 965 running at 3.2GHz (Turbo & EIST Disabled)
主板 Intel DX58SO (Intel X58)
芯片组 x58
芯片组驱动 Intel 9.1.1.1015 + Intel IMSM 8.9
内存 Qimonda DDR3-1066 4 x 1GB (7-7-7-20)
显卡 eVGA GeForce GTX 285
显卡驱动 NVIDIA ForceWare 190.38 64-bit
分辨率 1920 x 1200
操作系统 Windows 7 x64

INTEL新的34nm SSD:没你想像的那么大突破

我花了一段时间才弄明白INTEL最近投放市场的SSD,主要是因为INTEL并没有公开的文档。INTEL一直刻意模糊有关的重要细节,只能通过测试得到的数字来猜测它们之间的不同。不过,经过几个星期,我想我已经明白了。


X25-M 第一代(G1) X25-M 第二代(G2)
闪存颗粒工艺50nm34nm
读取延时85µs65µs
写入延时115µs85µs
4KB随机读取最高35K IOPS
最高35K IOPS
4KB随机写入最高3.3K IOPS
最高6.6K IOPS(80GB)
最高8.8K IOPS(160GB)
持续读取速度最高250MB/s最高250MB/s
持续写入速度最高70MB/s
最高70MB/s
无卤素加工
建议售价$345(80GB)
$600-700(160GB)
$225(80GB)
$440(160GB)


22.jpg
第一代基于50nm工艺的X25-M

23.jpg
第二代基于34nm工艺的X25-M

进化到34nm让INTEL X25-M的价格竞争力大大增强。新的制程也使得INTEL可以改进控制器的性能。控制器的基本架构并没有变,但在技术上并不是另一块硅片那么简单(不仅仅是无卤素),是固件本身的改进。

24.jpg
旧版的控制器

25.jpg
新版的控制器

新的X25-M还具有两倍大的集成缓存。旧款的型号使用了16MB的三星166MHz缓存(CAS 3)。

26.jpg
再见了,三星

新的160GB G2使用了32MB美光133MHz缓存(CAS 3)。

27.jpg
你好,美光

更多的缓存意味着控制器可以同时跟踪更多的数据,可以更好地整理和重组数据。我们看到这体现在4KB文件的随机写入性能上,大约提高了50%的水平。

INTEL使用了16GB的闪存颗粒代替了旧工艺的8GB颗粒。一旦34nm工艺进入批量生产阶段,INTEL可能会在PCB的背面再集成十颗颗粒,提供320GB的型号。我不期望这个时间会很快。

28.jpg
旧版的X25-M

29.jpg
新版的X25-M

34nm新工艺的驱动器在性能上相比旧工艺并没有明显的改进。

30.jpg
新旧版X25-M对比数据

请注意,我们使用了最新的Iometer进行测试,这和我们以前的测试不同,这个测试软件可以更好地填充整个驱动器,并提供更可靠的测试数据。

从测试结果中可以看到这些:新的G2并没有快很多。事实上,在4KB文件随机写入测试中,它比全新状态下的G1要慢些。只不过,G2的性能并没有随着时间 下降。所有测试的情况都是如此(G2没产生下降的问题)。是的,你没有看错。在这样的重载测试中,G2都是轻轻松松地应付了。这,真是可怕。

G2在测试中全面领先,甚至,4KB随机读取项目领先11%之多。

接下来,我们使用PCMark Vantage测试了这两款SSD产品,以更接近真实世界的表现,结果差不多。

31.jpg
PCMark Vantage测试(新盘)

全新状态下的G1和G2成绩很接近,呈现交替领先的局面。PCMark Vantage HDD 测试套件展示了G2的真正潜力,大约比G1要快5.6%左右。

32.jpg
PCMark Vantage测试(使用后)

对使用后的测试显示G2更领先一点,但不是非常大的差距,PCMark Vantage HDD测试套件的平均得分显示G2大约领先G1 7.5%。显然,34nm新工艺带来的不仅仅是更吸引人的价格,还有更多性能方面领先的因素。

34nm新工艺的SSD还内置支持TRIM指令,尽管现在还没到用上的时候。INTEL称将在今年四季度提供一个可下载的新固件,仅有34nm的SSD可 用于刷新支持TRIM。届时,TRIM在这些SSD中的表现将类似于现在TRIM在Indilinx手工运行的工具软件中的表现——换句话说,几乎恢复到 全新的性能。

因为或多或少地依靠TRIM指令消减无效数据,G2的固件将和G1有明显的不同。事实上,如果我们稍稍修改下我们的测试方式,我们可以在PCMark Vantage测试中使G1得到更好的成绩。在我们较早的测试中,我们首先将驱动器上填满各种数据,然后使用镜像文件进行恢复。恢复过程帮助清理了驱动器 上的碎片,并确保备用空间得到了一定的使用。如果我们不使用镜像文件恢复,而是全新安装操作系统,最终会得到一个更为分散的状态,这种情况应该在日常使用 中不会出现,因为一般人都会在清理和安全擦除驱动器后才开始安装操作系统,不过这种方法正是绝好的展现G2本领的途径:


PCMark Vantage测试(新盘) PCMark Vantage HDD测试(新盘) PCMark Vantage测试(使用后) PCMark Vantage HDD测试(使用后)
X25-M G1
15496 32365 14921 26271
X25-M G2
15925 33166 14622 24567
G2领先幅度 +2.8% +2.5% -2.0% -6.5%


可以看到G2处理碎片的方式与G1相比发生了实实在在的变化,不如G1那么优雅。很难说这是一种倒退,不过,显然是INTEL指望借助TRIM指令使得 G2可以获得和G1一样的性能表现,如此折中大约是为了保持G2在使用后仍然能保持较高的随机写入速度的缘故。我应该指出,假如没有TRIM的支持,G2 在测试中会比G1更慢。测试只是将两者之间的差异放大而已。

总的来说,G2是更好的选择,不过这得看TRIM的支持程度。G1会随着时间的流逝降低性能,G2会在你填满它之前出现性能下降。我们目前不知道INTEL公司会在新的固件中增加些什么新的东东……

我不想来告诉INTEL提供什么样的产品才会成功。没有什么能够阻止INTEL在G1中提供对TRIM的支持。我更愿意假设INTEL已经在内部测试中通过了G1对TRIM的支持,只是没有放出新版的固件而已(公认的漫长过程),但是从市场的角度来看,这又何必呢?

G1即便是在使用后,也比最快的Indilinx SSD要快。在4KB随机写入测试中,G1甚至比基于SLC闪存颗粒的Indilinx要快。INTEL不需要这么快抛弃G1,即便是G2更快的情况下。 不过,我想,INTEL用它的第一代X25-M掏出了慷慨拥趸的600美元,这是每时每刻都在真切发生的事情。现实让我们不得不叹气。

Indilinx,克隆、克隆

G.Skill、OCZ、Super Talent以及Patriot都拿来了他们的SSD产品进行测试。如果不看外面的商标贴纸,它们之间实在没有太多的不同。

33.jpg

34.jpg
从左至右:OCZ Vertex Turbo、OCZ Agility、Patriot Torqx、G.Skill Falcon和 Super Talent UltraDrive GX,只有Super Talent使用了不同的PCB设计

甚至它们的包装盒也非常相似,我真的搞不懂,似乎它们之间只是外包装图案有所不同而已。

它们之间还是有些细微的差别。Patriot Torqx提供了2.5"转3.5"适配器,一个不错的配件。同时,Patriot Torqx还提供了10年保固,是基于Indilinx控制器SSD产品中最长的。OCZ紧随其后,提供3年保固,Super Talent和G.Skill为2年。

Indilinx目前还是家小公司,所以在固件开发中他得依靠客户帮助确认、测试和反馈。就像我以前说过的那样,所有Indilinx的客户得到的都是相 同的固件修正,只不过他们中的一些重新命名固件的版本号,其他人没有。OCZ最新的固件是1.30,G.Skill、Super Talent和Patriot称为1571。

35.jpg
Indilinx Barefoot(大脚)控制器(右),基于ARM处理器核心

在所有的Indilinx系中,OCZ和Super Talent与Indilinx的关系最为密切。得益于OCZ和Super Talent对生产和测试的积极帮助,他们比其他的SSD厂商更先得到新版的固件。

现在你已经不需要跳线来升级固件了,前提是你的固件版本比1275更高。如果你还在使用以前的版本,那么你需要先升级到1275版本固件,再升级到更高的 版本。这个升级包含很大的运气成分,很多SSD厂商并不直接提供1275版本的固件,所以想要升级到最新版固件成为几乎不可能的事情。值得庆幸的是现在市 售的版本几乎都是最新版,这个问题主要是影响到那些早期的用户。

性能,正如你所预料的,无论制造商是谁,都非常接近。

36.jpg
4KB小文件随机写入速度

性能的差距取决于所使用的闪存颗粒和控制器,这就是为什么OCZ Vertex比Patriot Torqx要慢,但又比Super Talent UltraDrive GX要快。不同的制造商和不同的闪存容量左右着性能的表现,越大的容量也具有更高的性能,在这里256GB的版本比128GB的版本要快,同时128GB 的版本又比64GB的版本更快……

参与测试的驱动器使用了相同的固件(1571),只有一块Super Talent使用了测试版的1711固件,内置了对TRIM的支持。

当综合审视这些SSD产品后,我认为Patriot Torqx更适合桌面用户,因为它包含一个3.5"适配器,而且还有10年的保固(很难说Patriot会在10年的时间里面有哪些更换策略)。

37.jpg
Patriot Torqx固态硬盘,包含一个3.5"适配器

价格也是它们之间较大的不同,不过那些较贵的产品往往提供30美元的折扣,所以它们其实处于同一价格水平。


128GB版本价格
海盗船Extreme $384.00
OCZ Agility $329.00
OCZ Vertex $369.00
OCZ Vertex Turbo $439.00
Patriot Torqx $354.99


Wiper工具

微软唯一支持TRIM指令的操作系统只有Windows 7。对于Windows XP和Vista用户来说,即便SSD支持TRIM指令,操作系统也无法发送TRIM指令。幸运的是有一个解决办法,是由Indilinx首先提供的—— 不是INTEL,这真是Indilinx用户的福音。

这就是Indilinx Wiper工具。

38.jpg

这个工具从操作系统中找到所有可用的LBA地址(实际就是剩余空间),然后将空白地址清单发送给SSD,并告诉SSD清除这些LBA地址——按照一定的优 先顺序。它不会破坏有效的数据,关键在于它也不应该破坏有效的数据。一旦这些区块中的数据清除完成,性能又可以恢复到全新时的状态。

39.jpg

这其实是一个非常简单的解决办法。因为操作系统只需要将删除文件的TRIM指令发送给SSD就算完事了,剩下的工作是SSD在内部完成。操作系统不支持 TRIM?只需要运行Wiper工具,要求操作系统定位/标记那些不再使用的区块即可。你可以得到相同的结果,只是需要一个额外的步骤:运行Wiper工 具。

40.jpg
看见wiper.dat文件了?它其实包括了所有的剩余空间(LBA)并告诉控制器根据优先权处理这些区块,很聪明的方法

我对这个工具进行了测试,实际上,下面的数据在本文的一开始就出现过了。你可以看到,几乎恢复到全新时的性能:

PCMark Vantage HDD得分 新盘 使用后 TRIM和后台垃圾收集后 恢复百分比
OCZ Vertex Turbo (Indilinx MLC) 26157 25035 26038
99.5%


你现在可以从生产商那里得到这个工具,而且还有32位和64位的版本(仅适用于Windows,从XP到7)。我发现这个工具在IDE模式下工作最 好,RAID或者AHCI模式可能要多花几个小时的时间而且还有其它的小问题。正常情况下,它仅需要几分钟就可以把整个SSD处理完毕。

你并不需要经常性的运行这个工具(而且基于Indilinx控制器的SSD性能下降并不是那么厉害),一旦获得官方对TRIM的正式支持,Windows 7用户将不再需要这个工具。不过在一切还没有明确之前,有个小工具总比没有的好。

后台垃圾收集

Indilinx另外提供给用户的一个提高使用后性能表现的控制技术是后台垃圾收集,也就是说,当系统闲置的时候,会自动在后台进行空间整理的操作。

这个功能实际上是三星率先在其RBB控制器上引入的,但是三星控制器在使用这个功能时多少有点问题,并不够稳定。

其实,这个机制的工作原理是将驱动器上的数据重新组织成相对比较完整连续的状态,或通过查看驱动器上的文件系统,并使用TRIM指令对文件进行处理。 Indilinx和三星虽然都提供垃圾收集的算法机制,不过两者的工作过程并不相同。看来,他们已经确定这种机制对抑制性能下降有一定的作用。

在Indilinx的方案中,并不仅仅是使用TRIM指令对驱动器进行处理,驱动器并不知道如何进行TRIM处理:它只不过是跟踪所有的数据。相反,驱动器重新安排它上面的数据,以获得最大的性能恢复。

在三星的方案中,需要有兼容的文件系统(据说是NTFS),然后数据在TRIM指令的作用下进行相应的清理处理。

闲置垃圾收集机制可以带来性能的提升:

PCMark Vantage HDD得分 新盘 使用后 TRIM和垃圾收集后 恢复百分比
海盗船P256 (Samsung MLC) 26607 18786 24317 91%


这种机制大概不会对笔记本用户的使用时间带来什么影响。另外,很难说这种机制是否会影响到驱动器的使用寿命。如果你什么也没有做的时候,驱动器反而在进行大量的读写操作,难说你不会担心。遗憾的是,这种机制没有办法关掉。

Indilinx步三星的后尘推出了后台垃圾收集机制,我个人认为这是一个错误。就个人而言,真正的TRIM支持(或者至少是类似Wiper工具的程序)才是今后几个月SSD厂商应该努力的方向。我并不喜欢后台垃圾收集这样的东西。

Indilinx对TRIM的早期支持

正如我在前面提到的,Indilinx现在对OCZ和Super Talent的SSD推出了早期的支持TRIM指令的测试版固件。OCZ称这个固件为1.42,Super Talent则称之为1711。非常遗憾的是,这个固件当电脑进入休眠模式时会造成数据的丢失,而且现在他们已经将这个测试版的固件从网站上撤掉了。

下面是这个测试版固件的成绩:

SuperTalent UltraDrive GX 1711 4KB随机写入IOPS
新盘 13.1MB/s
使用后 6.93MB/s
应用TRIM指令后 12.9MB/s


TRIM指令看起来做了两件事:一是删除文件并清空回收站(真正的删除它们),另一件事就是格式化驱动器上未使用的空间。或者说,控制器简单地删除了一个 分区而不是对整个驱动器执行TRIM指令,我还不习惯它的这种工作方式。在正常使用情况下,TRIM可以提供相对新盘90%以上的性能表现。

在对TRIM的支持上有一个很大的局限性,那就是只能工作于支持的操作系统上(Windows 7或者某些Linux版本),并且还只能使用支持的驱动程序。在Windows 7下面,就只能使用微软的IDE或AHCI驱动(也就是说,不能安装任何芯片组驱动程序)。

更遗憾的是,如果你使用了INTEL芯片组的RAID模式(不管是真正的RAID还是仅仅这种模式),Windows 7载入的Intel Matrix Storage Manager驱动并不能透过TRIM指令使之到达驱动器。我期望INTEL会在今年四季度发布34nm SSD产品新版固件的同时来修正这个问题。

OCZ的聪明之处:便宜的Indilinx SSD产品

三星的SSD产品主要供于OEM,并且三星同时向OCZ和海盗船这样的厂家提供闪存颗粒。三星实际上在初期阶段向基于Indilinx控制器的SSD提供所有的闪存颗粒,不过,他的颗粒价格后来上升了。

OCZ很快的转向其他厂家购买闪存颗粒,这就是OCZ Vertex系列,我们都很熟悉的产品。

41.jpg
OCZ Vertex系列固态硬盘

下面就是OCZ  Agility系列,它们的控制器和Vertex系列完全相同,都来自Indilinx,但是却采用了INTEL 50nm工艺闪存颗粒或者东芝40nm工艺闪存颗粒。

42.jpg

43.jpg
像其它基于Indilinx的产品一样,我手上的Vertex系列也是采用了三星的闪存颗粒。

44.jpg
Agility系列使用的是INTEL 50nm闪存颗粒

45.jpg
少数比较幸运的Agility用户购买到的是东芝40nm闪存颗粒,它们速度要快一点点

闪存颗粒越慢,当然SSD的读写性能也越慢。这里我实际上比较的是Vertex Turbo,它比大多数基于Indilinx控制器和MLC颗粒的SSD产品都要快上一点,所以下面实际上是Agility和一个“更好”的Vertex之间的数据:

使用后性能 OCZ Agility OCZ Vertex Vertex领先幅度
4KB随机写入 7.1MB/s 7.6MB/s 7%
4KB随机读取 35.9MB/s 37.4MB/s 4.2%
2MB持续写入 136.3MB/s 155.8MB/s 14.3%
2MB持续读取 241.3MB/s 254.2MB/s 5.3%
PCMark Vantage总分 14468 14694 1.6%
PCMark Vantage HDD
24493 25309 4.2%


在PCMark Vantage套件测试中,Vertex比Agility大约要快上0~5%,在低层次的测试对比中,要快上大约4~14%。价格方面,128GB的产品要相差12%,64GB的产品相差9.5%(目前还没有256GB的Agility产品)。


OCZ Agility OCZ Vertex 价格差异
64GB $199.00 $219.00 $19
128GB $329.00 $369.00 $40
256GB $725.00


如果你想进入SSD的阵营,而且还不想花太多的钱,那么Agility系列会是比较合适的选择。

我想OCZ推出Agility系列是个不错的主意。我不敢肯定的说,但个人建议只要闪存颗粒是可靠的,不用在乎是谁制造的。并且我愿意承受性能上的一点点差距以达到更具竞争力的价格。

OCZ Solid 2

我们刚已经说过,OCZ的Agility系列其实是把Vertex系列换成了更便宜的闪存颗粒,那么他的Solid 2系列呢?

46.jpg

OCZ最近宣布推出Solid 2系列SSD产品,这个名字听起来有点后怕(旧的Solid系列基于JMicron控制器),但它的命名方式类似于Agility。

第一款Solid 2产品现在已经释出,与Vertex系列和Agility系列相同,仍然使用了Indilinx控制器。唯一的不同在于,它使用了INTEL 34nm闪存颗粒。

最初的Solid 2产品规格非常低,我已经确认,它们标记的比较保守。OCZ现在每天都在调整Solid 2的性能,并且只是简单的宣布接受预订。虽然目前得知Indilinx控制器与INTEL 34nm闪存颗粒之间有些问题,不过OCZ的工作也取得了一定的进展。

OCZ Vertex Turbo系列:超频版

SSD阵营的竞争一直比较白热化,这样的竞争反应在所有的方面。OCZ宣称自己的SSD产品会比INTEL的产品更便宜(至少在每GB价格上),而且OCZ现在还扩充了自己的阵容。

47.jpg

对于OCZ的Vertex系列和Agility系列,我们已经很熟悉了。Vertex EX系列实际上是采用SLC颗粒的版本,现在OCZ又推出了新的Vertex Turbo系列。Vertex Turbo实际就是Vertex,不过控制器和内置缓存的频率更高:180MHz,Vertex是166MHz。控制器其实完全一样,不同的只是频率提高 到180MHz。OCZ帮助Indilinx改进其控制器,作为补偿,Indilinx提供给OCZ频率更高的控制器。

48.jpg

随着频率的提升,可能会缩短控制器指令的执行时间几个纳秒。问题是,现在的性能瓶颈在于闪存颗粒,它们的执行周期以微秒记,完全抵消了几个纳秒能够带来的好处。换句话说,不要对性能的线性提升抱有期望。

49.jpg

我们已经看到,基于Indilinx控制器的相同SSD产品之间也有几个百分点的差距。所以,为了使测试尽可能的精确,我首先测试了Vertex Turbo的性能,然后,刷入Vertex固件,将其作为Vertex进行测试。实际上也就是将控制器和缓存的频率调低到166MHz。

新盘性能 OCZ Vertex OCZ Vertex Turbo 领先幅度
4KB随机写入 13.2MB/s 13.6MB/s 3%
2MB持续写入 175.9MB/s 184.2MB/s 4.7%


正如所料,它们之间只有很少的性能差别。你可以从基于Indilinx控制器和MLC闪存颗粒的任何两个SSD产品之间看到这种微弱的差异,甚至我们手上 的Patriot Torqx都和Vertex Turbo一样快。不过,具体到价格上,Vertex Turbo却要贵得多。


128GB价格
OCZ Vertex
$369.00
OCZ Vertex Turbo
$439.00
上涨幅度 19%


这样的价格甚至超过了INTEL 160GB版本的X25-M,绝对不值得购买。我和OCZ的CEO,Ryan Petersen谈论过Vertex Turbo系列存在的价值。像往常一样,他告诉了我他的远见。他希望未来能够在Vertex系列中使用相同的180MHz控制器,并且价格保持不变。他的 意图是,在基于Indilinx控制器的相同价位的SSD产品中提高OCZ产品的竞争力。

虽然我不建议在Vertex Turbo系列上多花钱,但是,如果OCZ真能把Vertex系列控制器的频率提高到180MHz,我也不会抱怨什么。

关联博文:

[翻译][硬件]深入探究SSD技术内幕~助您了解和选购最佳SSD产品~(一)

[翻译][硬件]深入探究SSD技术内幕~助您了解和选购最佳SSD产品~(三)

点击此处链接进入,查看更多高端硬件分析与测评:
阅读(1876) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~