From Latin -olus, -ellus, -illus, -lus 'id.' All from original Latin suffix -ulus 'id.' The vowel changes and consonant additions were due to sound conditioning (see explanatory quote by Penny below).
From Proto-Italic *-elos. From Proto-Indo-European *-elo- 'id.'
Western Vulgar Latin: Asturian -uelu, Portuguese -ulo, Galician -ulo, Catalan -ul, French -ule, Italian -olo; Eastern Vulgar Latin: Romanian -ul
Oscan kaíla "sacred building" and Faliscan cela "small storeroom" contain Proto-Italic *-elā
Celtic: Welsh -el, Breton -el; Germanic: Old Icelandic -ull, Old English -l, Old High German -ala,
"[The suffix] -uelo is now most frequently pejorative in tone and may have diminutive value.... Its Latin antecedent -OLUS, was at first inherently atonic, ... and was applied to forms which displayed hiatus between the two final syllables: FILIUS → FILIOLUS, FLUVIUS → FLUVIOLUS. Under such phonological conditions, spoken Latin transferred the stress from the antepenultimate to the penultimate syllable..., thus converting the suffix from atonic to tonic and ensuring its continued identity.... The suffix -uelo was very frequent in Old Spanish and apparently retained the affectionate value of its Latin ancestor." ~ R. J. Penny, A History of the Spanish Language (2002)