我聽說Cassandra可以將日誌文件寫入一個磁盤,並將SS Tables寫入另一個磁盤,這有很大的改進。我有兩個磁盤,如果我正在運行Linux,我會將每個磁盤安裝在不同的路徑中,並將Cassandra配置爲在這些磁盤上寫入。如何讓Cassandra在SmartOS的ZFS上使用兩個磁盤?
我想知道的是如何在ZFS和SmartOS中做到這一點。
我是SmartOS中的一名完全新手,根據我的理解,我將磁盤添加到存儲池,然後將它們作爲一個管理?
我聽說Cassandra可以將日誌文件寫入一個磁盤,並將SS Tables寫入另一個磁盤,這有很大的改進。我有兩個磁盤,如果我正在運行Linux,我會將每個磁盤安裝在不同的路徑中,並將Cassandra配置爲在這些磁盤上寫入。如何讓Cassandra在SmartOS的ZFS上使用兩個磁盤?
我想知道的是如何在ZFS和SmartOS中做到這一點。
我是SmartOS中的一名完全新手,根據我的理解,我將磁盤添加到存儲池,然後將它們作爲一個管理?
默認情況下,SmartOS將所有磁盤聚合到一個ZFS池中(SmartOS將該池命名爲「區域」)。在此池中創建ZFS數據集,它可以看起來像塊設備(用於KVM虛擬機)或作爲文件系統(用於SmartOS區域)。
您可以在SmartOS中設置多個池,但您必須手動完成。 Solaris documentation仍然非常好,適用於現代Illumos發行版(包括SmartOS)。 Chapter 4擁有所有用於創建新ZFS池的相關信息,但它可以是簡單:
zpool create some_new_pool_name c1t0d0 c1t1d0
這是假設你有機會到全局區域。
如果我在裸機上運行一個Cassandra集羣,並且想從ZFS和DTrace中受益,我可能會使用OmniOS而不是SmartOS。我不希望與我的數據庫機器爭用任何資源,所以我不會在該硬件上運行任何其他區域或虛擬機(這是SmartOS真正擅長的)。
psanford解釋瞭如何使用兩個磁盤,但這可能不是你想要的。通常建議解決操作系統I/O調度中的缺陷。 ZFS具有寫入節流閥以避免飽和磁盤[0],並且可以配置SmartOS以限制I/O,以確保當某些用戶(可能是同一用戶)正在進行繁重的寫操作時,讀卡器可以看到良好的性能[1]。如果開箱即用的配置不夠充分,我會感到驚訝,但如果您看到糟糕的表現,那麼量化這一點會很好。
[0] http://dtrace.org/blogs/ahl/2014/02/10/the-openzfs-write-throttle/ [1] http://dtrace.org/blogs/wdp/2011/03/our-zfs-io-throttle/
請參閱@戴夫 - 帕切科的回答。他知道他在說什麼。 – psanford