-
sjorge
that also not possible as then you can't set the secondary-macs for the 2nd instance
-
neuroserve
has anyone tried to compile vitess on smartos?
-
neuroserve
-
xmerlin
sjorge, in omnios a guy created the interfaces in the global zone and then he attached the interface using { "physical": "test1vip0" } in the regular zone ...but there no such option in smartos
-
jperkin
neuroserve: go stuff is usually pretty good at just working on SmartOS, and if not there are plenty of examples of where we've fixed things, it's just unfortunate that go makes that so difficult compared to other languages
-
xmerlin
jperkin, speaking of Go, the current Minio can no longer be compiled under SmartOS due to a library that has removed support for Solaris/Illumos... It would be great to try to get them to reinstate the support
-
jperkin
is that the kubernetes one or am I thinking of something else?
-
xmerlin
no kubernetes
-
jperkin
-
xmerlin
-
jperkin
"yeh we don't support illumos so we're going to gratuitously break all dependents on our code" :/
-
jperkin
ok, I think that might get messy with how go modules work and will likely just mean lots of patching dependents again, sigh
-
sjorge
xmerlin might work for a zone, don't think it would work for a KVM/Bhyve VM
-
xmerlin
sjorge, it's a starting point but actually smartos doesn't support it so ...it works only in omnios
-
sjorge
VRRP VNIC works fine if you precreate them and not depend on the zone scripts to do so on OmniOS
-
xmerlin
there no way to use it in a zone created using vmadm
-
sjorge
Theoretically if you don't want to/cant pass a extra nic to the VM via ppt, you could probably setup a extra netwerk that does not use VLAN tagging and have the switch deal with it
-
sjorge
Then promisc will just see the normal untagged traffic only
-
sjorge
That SHOULD work
-
sjorge
But I just ended up passing the nic to the VM as i would be dedicated it for that purpose anyway
-
xmerlin
It would be better if the wiki example worked and it was possible to set up with VRRP inside the zone... I suspect it used to work properly before the changes.
-
xmerlin
sjorge, I cannot pass the nic to the vm ...so I need another solution
-
xmerlin
on my servers I have only 2x25Gbit cards
-
sjorge
danmcd: you know a bit about the netstack, can we somehow configure a vnic with a vlan set to only receive traffic for that vlan in promisc mode? (so no other vlans and all traffic for the vlan it has configure arrives untagged)
-
sjorge
that would do the trick i think, but i dont think its possible atm
-
danmcd
Have you tried not using vnic, but a *vlan* network object?
-
danmcd
i.e. `dladm create-vlan ...` instead of `dladm create-vnic... ` ?
-
danmcd
It might be syntactic sugar, but I wanna say things might be a hair different under the hood.
-
danmcd
Also... what actual-NIC are you using for this?
-
danmcd
(If you're using i40e with the promisc workaround, e.g. I'd be VERY VERY interested in knowing if this problem only exists there...)
-
jbk
IIRC, it should be
-
jbk
i think vnic doesn't allocate new rings
-
jbk
err vlan
-
jbk
while vnic does
-
jbk
i.e. I think a vnic object just uses the existing rings but inserts/removes vlan tag
-
danmcd
Where a vlan object allocates a ring, huh?
-
jbk
a vnic definitely does
-
jbk
which is why some people have problems with slow-booting VMs on i40e
-
jbk
if they're using jumbo frames
-
jbk
(probably other NICs too, but i40e seems to be the most notable)
-
jbk
also means more kernel memory used
-
jbk
granted, i think mlxcx might be worse in that regard
-
jbk
had a system w/ 2 4-port aggrs + a couple vnics on top of them
-
jbk
w/ jumbo frames
-
jbk
kernel needed about 76GB of RAM basically just to get started
-
jbk
well userland would come up, but the instant you tried running anything, you'd run out of ram (and likely trigger a pageout deadman) within minutes
-
danmcd
We can help that along as I start digging through mlxcx for CX-6.
-
jbk
having fixed i40e and vmxnet3... and likely most other drivers supporting jumbo frames likely have a similar issue (more acute of a problem if they support large numbers of hw rings)
-
jbk
i'm working on prototyping some opt-in bits to mac that should take care of all of this (and simplify drivers a fair amount)
-
jbk
and will probably present it as an IPD
-
danmcd
Sounds IPD-worthy for sure.
-
jbk
ideally, when advertising ring support, the driver can specify some additional info, as well as some alternate functions
-
jbk
and then for TX, their callback gets passed a struct w/ checksum/offload info, and an array of ddi_dma_cookie_ts that already have everything in the packet copyied/bound/split as necessary
-
jbk
so all they need to do is write the paddr + size + driver specific metadata (e.g. SOP, EOP bit, checksum offload info, etc) to the descriptor entries
-
jbk
and then whatever needed to kick the ring
-
jbk
plus a callback to notify when entries have finished transmitting and can be reclaimed
-
jbk
and the (again opt-in, drivers not doing this see no changes, and hopefully don't even hit any changed code paths)
-
jbk
mac layer handles all of that
-
jbk
plus something similar for RX
-
jbk
so all that buffer management could go away
-
jbk
all the complex logic for mapping descriptor<->mblk largely goes away
-
jbk
and with mac handling the buffers, initially it'd be fairly simple, but it'd allow for future improvements
-
jbk
(one thing is that it allows TX/RX bufs to share a common pool, but could add things like dynamically adjusting size, or maybe have another pool of smaller bufs
-
jbk
e.g. 128 bytes or such (at least for our stuff, probably 30% of the packets on the wire fit into that size (or maybe 256bytes)