Some answers:
1) I'm not sure where you get your idea about petabytes. Currently a full node takes about 200GB of space: https://etherscan.io/chartsync/chaindefault . Even if you use an archive node (which is very rarely needed) it takes about 3,5 TB: https://etherscan.io/chartsync/chainarchive . So petabytes don't seem to be reality. Clients of course don't like if the storage requirements go up and that is a known problem. If you mean petabytes in a private Ethereum blockchain then it's up to the organization to handle it - it's a bit difficult to imagine how you could get that much data in an Ethereum blockchain unless you really abuse it. Ethereum is not meant for any real data storage.
2) As I mentioned Ethereum is not meant for storing any bigger amounts of data. There are other solutions for that, for example IPFS. Swarm is also a possibility but I don't think it's quite ready yet.
3) You're not meant to transfer data from onchain to offchain solutions due to storage requirements. If you even once enter the data onchain then it will stay there forever. So the point is to never upload the data onchain and store it somewhere else and possibly store only a reference to it onchain (typically a hash value).
4) In theory IPFS is scalable but it also is far from ready. Ethereum is not scalable in many ways. That's why the Ethereum community is working on building Eth2.0 which solves scalability issues by sharding. Eth2.0 will still take a few years to be reality. Although I think even Eth2.0 is not meant for increasing data storage - only network capacity and speed. Ethereum will never be meant for data storage.