Using 2 SSD's to create a SLOG
Johan Hendriks
joh.hendriks at gmail.com
Wed Jul 9 08:11:56 UTC 2014
op 09-07-14 09:21, krad schreef:
> An NFS server is a common task that generates lots of synchronous writes
>
>
> On 8 July 2014 03:51, <kpneal at pobox.com> wrote:
>
>> On Mon, Jul 07, 2014 at 06:06:43PM -0700, javocado wrote:
>>> I am interested in adding an SSD "SLOG" to my ZFS system so as to
>>> (dramatically) speed up writes on this system.
>>>
>>> My question is if ZFS will, itself, internally, mirror two SSDs that are
>>> used as a SLOG ?
>>>
>>> What I mean is, if ZFS is already smart enough to create a zpool mirror
>>> (or, on my case, a zpool raidz3) then perhaps ZFS is also smart enough to
>>> mirror the SLOG to two individual SSDs ?
>>>
>>> I am hoping to dumbly plug two SSDs onto motherboard SATA ports and just
>>> hand them over, raw, to ZFS.
>> From the zpool man page:
>>
>> Example 12 Creating a ZFS Pool with Mirrored Separate Intent Logs
>>
>> The following command creates a ZFS storage pool consisting of
>> two,
>> two-way mirrors and mirrored log devices:
>>
>> # zpool create pool mirror c0d0 c1d0 mirror c2d0 c3d0 log mirror \
>> c4d0 c5d0
>>
>> You should be able to use that example to make the 'zpool add' command to
>> add the mirrored log to an existing pool.
>>
>> But know that the SLOG only helps writes that are synchronous. This is in
>> many workloads a small fraction of the total writes. For other workloads
>> it is a large portion of the writes.
>>
>> Do you know for certain that you need a SLOG?
>> --
>> Kevin P. Neal http://www.pobox.com/~kpn/
>> On the community of supercomputer fans:
>> "But what we lack in size we make up for in eccentricity."
>> from Steve Gombosi, comp.sys.super, 31 Jul 2000 11:22:43 -0600
>> _______________________________________________
>> freebsd-fs at freebsd.org mailing list
>> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
>> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
>>
> _______________________________________________
> freebsd-fs at freebsd.org mailing list
> http://lists.freebsd.org/mailman/listinfo/freebsd-fs
> To unsubscribe, send any mail to "freebsd-fs-unsubscribe at freebsd.org"
I would not use raw disks...
The way I add a SLOG to the system is as follows.
In my case I can hotswap disks so I insert one SSD, On the console it
will show up as for example da10.
I also mark the disk with the label I use on the system in this example
slog01.
Then I use gpart to label the disk
# gpart create -s gpt /dev/da10
# gpart add -t freebsd-zfs -a 4k -l slog01 /dev/da10
Then I Insert the second disk
If this disk shows up as da11 I use the following commands. I also label
the disk with a sticker or pen slog02
# gpart create -s gpt /dev/da11
# gpart add -t freebsd-zfs -a 4k -l slog02 /dev/da11
This way I now for certain that the disk slog01.
If you do not label the disk itself and /dev/daxx numbers change you can
remove the wrong disk...
Then I add the slog device to the pool. In the example my pool is named
storage
# zpool add storage log mirror gpt/slog01 gpt/slog02
A zpool status will show you the whole pool and you will see in the end
the mirrored log device
san01 ~ # zpool status
pool: storage
state: ONLINE
scan: scrub repaired 0 in 1h21m with 0 errors on Tue Jul 1 06:51:21 2014
config:
NAME STATE READ WRITE CKSUM
sanstorage ONLINE 0 0 0
mirror-0 ONLINE 0 0 0
gpt/disk0 ONLINE 0 0 0
gpt/disk1 ONLINE 0 0 0
mirror-1 ONLINE 0 0 0
gpt/disk2 ONLINE 0 0 0
gpt/disk3 ONLINE 0 0 0
mirror-2 ONLINE 0 0 0
gpt/disk4 ONLINE 0 0 0
gpt/disk5 ONLINE 0 0 0
mirror-3 ONLINE 0 0 0
gpt/disk12 ONLINE 0 0 0
gpt/disk13 ONLINE 0 0 0
mirror-4 ONLINE 0 0 0
gpt/disk6 ONLINE 0 0 0
gpt/disk7 ONLINE 0 0 0
mirror-5 ONLINE 0 0 0
gpt/disk10 ONLINE 0 0 0
gpt/disk11 ONLINE 0 0 0
mirror-6 ONLINE 0 0 0
gpt/disk8 ONLINE 0 0 0
gpt/disk9 ONLINE 0 0 0
logs
mirror-7 ONLINE 0 0 0
gpt/slog01 ONLINE 0 0 0
gpt/slog02 ONLINE 0 0 0
errors: No known data errors
The main advantage of the gpart label is that you can use it on every
sata/sas port in the system.
If I use it in the front bays on the system they are known as daxx but I
can put them on the sata controller on the motherboard if I want, they
will become adaxx. Because ZFS uses the gpt labels it will always find
them.
Please make sure you have a backup...
Also first try it on a virtual machine and get comfortable with the
commands...
regards
More information about the freebsd-fs
mailing list