thanks everyone for the replies! :)
At first my idea was to use PWM fans, but 1) they all have a fixed minum rotation speed (as per Intel spec) that is 30%, and 2) the PWM freq should be around 25 khz (Intel spec) which in my limited experience involves changing the Arduino timers which in turn affects millis, PWMs etc
I also tried to PWM an optocoupler that was driving a mosfet, but the fan was making a whining noise so someone suggested to raise the frequency (same cons as above) and someone else also stated that fast switching the current of a brushless dc motor could in the long run damage the motor.
So, to keep everything simple, I decided to go for a 3 wire (I find them easily) or a 2 wire (rare) fans and switch all of them on/off based on the reading of 3 temperature sensors.
My application is an aquarium fixture, and arduino is needed to manage (by PWM) the various LED channels.
It will also read the heatsink temp, and if above a threshold it will turn the fans on. If the temp continues to raise (probably a fan faulting), dim LEDs at 50%. If the temp still raise, turn the LEDs off.
I was just wondering if it would be better/safer to use a transistor or a relays or something else.
So again thank you for the replies, and please add any suggestion you may have! :)