Switzerland-based commodity supplier Glencore has signed a deal to buy Canadian agribusiness group Viterra for C$6.1bn (US$6.15bn).